r - 使用 lapply 跳过最后 N 行,然后使用 read.csv

标签 r lapply readlines

我是一名 R 初学者,正在尝试读取多个 csv 文件,从每个文件中删除/跳过最后 5 行,然后将它们绑定(bind)在一起。我无法弄清楚删除行的步骤以及使用什么功能?我尝试了下面的 readLines,然后尝试使用 nrow,但我很确定它在错误的地方。

我是这样开始的:

alldata <- do.call(rbind, lapply(list.files(path = "./savedfiles", full.names = TRUE), read.csv))

我不确定在哪里删除该代码中的行,所以我将其拆分以理解它并尝试使用 readLines:

files<- list.files(path = "./savedfiles", full.names = TRUE)
c <- lapply(files, readLines) - to count the rows
alldata<- do.call(rbind,lapply(files, nrow = length(f) - 5, full.names = TRUE), read.csv)

这只是抛出一个错误,指出缺少参数 FUN,所以我知道我做得不对,但不确定如何修复它。

最佳答案

像这样的事情应该会让你走上正轨。这首先读取文件,然后删除最后 5 行,最后将它们绑定(bind)在一起。还建议不要使用可能与函数名称冲突的变量名称。 filesc 是基础 R 中的函数。在这里,我使用 all_files 而不是 files。 -

all_files <- list.files(path = "./savedfiles", full.names = TRUE)

do.call(rbind, # assuming columns match 1:1; use dplyr::bind_rows() if not 1:1
  lapply(all_files, function(x) {
    head(read.csv(x, header = T, stringsAsFactors = F), -5) # change as per needs
  })
)

关于r - 使用 lapply 跳过最后 N 行,然后使用 read.csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57898160/

相关文章:

performance - 如何加快 GLM 估计?

r - 根据某一特定行对热图进行排序

r - 如何让 R 的 lapply(和 mclapply)恢复随机数生成器的状态?

r - 组合数据框行

python - 在两个相同的字符串之间从 python 中的 txt 文件中读取一段文本

python - readlines 给了我额外的换行符 python2.6.5

r - 为什么列名会连接到线性模型摘要的行输出中?

r - 将月份第一级的值保留在数据框中,同时将 R 中的其余值设置为零

r 减去平均值并除以少数变量的标准差

c# - 从文本文件中获取非空行的总数?