从R中的csv导入几行

时间:2012-12-11 21:07:34

标签: r

我有包含N行的csv文件,其中每行对应一个数据点。有没有办法从这个csv文件中读取一组预先指定的行。

2 个答案:

答案 0 :(得分:4)

您可以指定skip的{​​{1}}和nrows参数:

  

read.csv integer:开始读取数据之前要跳过的数据文件的行数。

     

skip整数:要读入的最大行数。忽略负值和其他无效值。

答案 1 :(得分:4)

使用Python或Unix shell等其他工具提取所需的行更快,但如果R是您的最佳选择:

file.in <- file('yourfile.txt', 'rt')
##file.header <- readLines(file.in,n=1) #do this if you are skipping a header
##change this to the lines that you want - line numbers must not decrease
ind.to.read <- c(10,15,20) 
##this is how many lines you want to skip in between lines you want
ind.to.skip <- c(ind.to.read[1],diff(ind.to.read)) - 1
# [1] 9 4 4 
##returns a list of data frames corresponding to rows
lines.to.keep <- lapply(ind.to.skip, function(x) { 
  readLines(file.in,n=x)
  read.table(file.in,nrow=1) 
}) 
small.df <- do.call(rbind,lines.to.keep) #put the data frames together