例如,我想将 txt 文件中的索引指定的一组特定行读入 R 中
index = c(2, 5, 9, 99, 100)
表示 R 中的第 2 行、第 5 行等。我应该如何处理这个问题?我要不要用
scan (file, skip = index[i]-1, nlines = 1)
用for循环?
例如,我想将 txt 文件中的索引指定的一组特定行读入 R 中
index = c(2, 5, 9, 99, 100)
表示 R 中的第 2 行、第 5 行等。我应该如何处理这个问题?我要不要用
scan (file, skip = index[i]-1, nlines = 1)
用for循环?
使用lapply
:
lns <- lapply(index, function(i) <your scan line>)
do.call(rbind, lns)
# or
data.table::rbindlist(lns)
lapply
在我的情况下不起作用(R 版本 4.1),总是返回同一行(第一行)。
建议的循环有效。这是一个工作示例。
lines<-c(3,5,900,1000)
items<-c()
for(i in 1:length(lines)){
item<-scan(file,skip=lines[i]-1,nlines=1)
items<-c(items,item)
}