0

我正在尝试编写一个代码来操作来自特定 .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)
    }

这是我目前正在使用的代码,认为它提供了所需的输出,但速度极慢,我的 .csv 数据文件有 43200 行。

4

1 回答 1

2
  1. 你的代码不起作用。您混淆了比较运算符<=和赋值一<-
  2. 您的代码效率极低。您同时调用read.tablewrite.table 43200 次来读取/写入单个文件

你可以简单地这样做:

    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)
于 2013-08-14T03:11:28.640 回答