相关疑难解决方法(0)

如何计算文档中的行?

我有这样的线条,我想知道我实际上有多少行......

09:16:39 AM  all    2.00    0.00    4.00    0.00    0.00    0.00    0.00    0.00   94.00
09:16:40 AM  all    5.00    0.00    0.00    4.00    0.00    0.00    0.00    0.00   91.00
09:16:41 AM  all    0.00    0.00    4.00    0.00    0.00    0.00    0.00    0.00   96.00
09:16:42 AM  all    3.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00   96.00
09:16:43 AM  all    0.00    0.00    1.00    0.00    1.00    0.00    0.00    0.00   98.00
09:16:44 AM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
09:16:45 AM  all    2.00    0.00    6.00    0.00 …
Run Code Online (Sandbox Code Playgroud)

linux bash scripting command-line

994
推荐指数
15
解决办法
125万
查看次数

阅读100,000 .dat.gz文件的最快方式

我有几十万个非常小的.dat.gz文件,我想以最有效的方式读入R.我在文件中读取然后立即聚合并丢弃数据,因此我不担心在接近流程结束时管理内存.我只是想加快瓶颈,这恰好是解压缩和读取数据.

每个数据集由366行和17列组成.这是我目前所做的可重复的例子:

构建可重现的数据:

require(data.table)

# Make dir
system("mkdir practice")

# Function to create data
create_write_data <- function(file.nm) {
  dt <- data.table(Day=0:365)
  dt[, (paste0("V", 1:17)) := lapply(1:17, function(x) rnorm(n=366))]
  write.table(dt, paste0("./practice/",file.nm), row.names=FALSE, sep="\t", quote=FALSE)
  system(paste0("gzip ./practice/", file.nm))    
}
Run Code Online (Sandbox Code Playgroud)

以下是代码申请:

# Apply function to create 10 fake zipped data.frames (550 kb on disk)
tmp <- lapply(paste0("dt", 1:10,".dat"), function(x) create_write_data(x))
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是我最有效的代码来读取数据:

# Function to read in files as fast as possible
read_Fast <- function(path.gz) {
  system(paste0("gzip -d ", path.gz)) # Unzip …
Run Code Online (Sandbox Code Playgroud)

performance r data.table h2o

12
推荐指数
2
解决办法
3975
查看次数

标签 统计

bash ×1

command-line ×1

data.table ×1

h2o ×1

linux ×1

performance ×1

r ×1

scripting ×1