嗨,首先,我已经在堆栈和Google上搜索了,发现了这样的帖子: 快速读取非常大的表作为数据框。尽管这些内容很有帮助并且得到了很好的回答,但我正在寻找更多信息。
我正在寻找读取/导入高达50-60GB的“大”数据的最佳方法。我目前正在使用中的fread()函数,data.table而该函数是我目前所知道的最快的函数。我正在工作的PC /服务器具有良好的cpu(工作站)和32 GB的RAM,但仍超过10GB的数据(有时接近数十亿的观测值)需要花费大量时间才能读取。
我们已经有sql数据库,但是由于某些原因,我们必须在R中处理大数据。有没有一种方法可以比fread()这样的大文件加速R或更好的选择?
谢谢。
编辑:fread(“ data.txt”,详细= TRUE)
omp_get_max_threads() = 2
omp_get_thread_limit() = 2147483647
DTthreads = 0
RestoreAfterFork = true
Input contains no \n. Taking this to be a filename to open
[01] Check arguments
Using 2 threads (omp_get_max_threads()=2, nth=2)
NAstrings = [<<NA>>]
None of the NAstrings look like numbers.
show progress = 1
0/1 column will be read as integer
[02] Opening the file
Opening file C://somefolder/data.txt
File opened, size …Run Code Online (Sandbox Code Playgroud) 我目前工作的一个降价文件(乳胶),我使用kable()和kableExtra我的表。问题是我的一些表格太大,不适合 pdf 页面(即使是横向)。
我试图latex_options = "scale_down"从 kableExtra使用,但由于某些原因它不起作用,它不会改变任何东西。这是我正在运行的代码示例:
kable(dt, "latex", longtable = T, caption = "SampleCaption") %>%
add_header_above(c("","Mens" = 3, "Womens" = 3)) %>%
kable_styling(latex_options = c("striped", "scale_down", "repeat_header"),repeat_header_text = "",
full_width = F) %>%
column_spec(1, width = "10cm")
Run Code Online (Sandbox Code Playgroud)
我已经看过谷歌和stackoverflow。任何人都知道我做错了什么?谢谢
编辑,这是评论中要求的工作代码:
kable(dt, "latex", longtable = T, caption = "SampleCaption") %>%
add_header_above(c("","Mens" = 3, "Womens" = 3, "Total" = 2)) %>%
kable_styling(font_size = 7, latex_options = c("striped", "repeat_header"),repeat_header_text = "",
full_width = F) %>%
column_spec(1, width …Run Code Online (Sandbox Code Playgroud) 就像标题说的那样,为什么"1" == 1是TRUE?这背后的真正原因是什么?R是想和善还是其他呢?我一直在想,因为“ 1”(或任何数字,实际上都没有关系)被R读取为字符时,如果与as.numeric(1)或进行比较,它将自动返回FALSE as.integer(1)。
> as.character(1) == as.numeric(1)
[1] TRUE
Run Code Online (Sandbox Code Playgroud)
要么
> "1" == 1
[1] TRUE
Run Code Online (Sandbox Code Playgroud)
我想这是一个简单的问题,但我想得到一个答案。谢谢。
我目前必须.pdf使用R Markdown. 我正在使用该knitr包将我的数据帧“转换”为 LaTeX。我通常这样做没有问题,但这次我不太确定如何解决我的问题。
我需要获取列表中每个元素(某些数据框)的标题,以在.pdf文件中显示为标题。
这是我拥有的数据示例:
library(knitr)
library(kableExtra)
df1 <- data.frame(col1 = c(1,2,3), col2 = c("a", "b", "c"))
df2 <- data.frame(col1 = c(6,7,8), col2 = c("d", "e", "f"))
list <- list("df1" = df1, "df2" = df2)
print(list)
$`df1`
col1 col2
1 1 a
2 2 b
3 3 c
$df2
col1 col2
1 6 d
2 7 e
3 8 f
Run Code Online (Sandbox Code Playgroud)
我的knitr和kableExtra代码:
my_function <- function(list){
kable(list, "latex", longtable …Run Code Online (Sandbox Code Playgroud) col2我想创建多个列来显示,col3和的每个元素的百分比Total。我想出的代码仅显示paste这些列中的百分比,而不是将其粘贴到新列中。我已经在堆栈和谷歌上搜索过,但没有找到我正在寻找的答案。
样本数据 :
data <- data.table(col1= c("A", "B", "C"),
col2= c(43,23,19),
col3= c(102,230,149))
data <- data[, Total := col2 + col3]
data <- janitor::adorn_title(data)
Output :
col1 col2 col3 Total
A 43 102 145
B 23 230 253
C 19 149 168
Total 85 481 566
Run Code Online (Sandbox Code Playgroud)
我的百分比函数:
add_percent <- function(dt, col_no_percent, col_percent){
dt <- dt[
, c(.SD[, col_no_percent, with=FALSE],
lapply(.SD[, col_percent, with=FALSE], function(x){
paste0(x, format(round(x / sum(x) * 100 * 2, 1), nsmall …Run Code Online (Sandbox Code Playgroud)