我正在尝试编写一个代码来处理来自特定.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行。
答案 0 :(得分:2)
read.table
和write.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)