以R语言读取CSV文件的特定行

时间:2013-08-14 01:37:39

标签: r

我正在尝试编写一个代码来处理来自特定.csv的数据并将数据写入另一个。 我想逐个读取每一行并执行操作。 此外,我试图从.csv读取一个特定的行,但我得到的是该行和它之前的行。 我是R语言的初学者,所以我发现语法有点令人困惑。

    testconn<=file("<path>")
    num<-(length(readLines(testconn)))
    for(i in 1:num){
    num1=i-1
    los<=read.table(file="<path>",sep=",",head=FALSE,skip=num1,nrows=1)[,c(col1,col2)]
    write.table(los,"<path>",row.names=FALSE,quote=FALSE,sep=",",col.names=FALSE,append=TRUE)
    }

这是我目前使用的代码,认为它提供的是desiored输出,但它非常慢,我的.csv数据文件有43200行。

1 个答案:

答案 0 :(得分:2)

  1. 您的代码不起作用。您混淆比较运算符&lt; = 和分配一个&lt; -
  2. 您的代码极其无效。您同时拨打read.tablewrite.table 43200次来读取/写入单个文件
  3. 你可以这样做:

        los<- read.table(file="<path>",sep=",")[,c(col1,col2)]
        res <- apply(los,1,function(x){## you treat your line here}
        write.table(res,"<path_write>",row.names=FALSE,
                           quote=FALSE,sep=",",col.names=FALSE)