-1

row.names=file.names[i]我使用该write.table功能时似乎没有选项。例如,假设在文件夹中我有 3 个名为“file_1”、“file_2”和“file_3”的文件,那么在输出csv文件中,我希望看到以下结果:

"","keyword","totalword"  
"file_1",10,4348  
"file_2",1,1635  
"file_3",1,3237 

    for(i in 1:length(file.names)){
      ## calculate number of keywords and total words for each file within a folder
      x <- data.frame(keyword,totalword) 
      write.csv(x, file="results.csv",row.names = TRUE) 
    }

使用上面的代码,我只能得到以下内容:

"","keyword","totalword"  
"1",10,4348  
"2",1,1635  
"3",1,3237  

任何人都知道如何使用每个原始文件的名称来指定行名(即,将“1”“2”“3”更改为“file_1”、“file_2”、“file_3”?

4

2 回答 2

1

您在“file.names”中有文件的名称,因此只需更改
x <- data.frame(keyword,totalword)
x <- data.frame(file.names[i],keyword,totalword)
You may have to get rid of the row.names = TRUE.

于 2015-11-13T07:51:02.033 回答
0

有了这些数据:

keyword<-c(10,1,1)
totalword<-c(4348,1635,3237)

这里有几个选项:

x<-data.frame(keyword,totalword,row.names=paste0('file_',1:3))
write.csv(x, file="results.csv",row.names = TRUE) 

或者

x<-data.frame(keyword,totalword)
rownames(x)<-paste0('file_',1:3)
write.csv(x, file="results.csv",row.names = TRUE) 

或者

write.csv(x,file="results.csv",row.names=paste0('file_',1:3))

所有这些都将在 CSV 文件中返回:

"","keyword","totalword"
"file_1",10,4348
"file_2",1,1635
"file_3",1,3237

我假设你有 3 行,然后你写一个 csv。如果你想在 csv 中写一行,然后是下一行,依此类推(每次迭代一行),你可以执行以下操作:

write.csv(x,file="results.csv",append=TRUE,row.names=paste0('file_',i))
于 2015-11-13T07:42:03.053 回答