计算多个csv中的行,按降序写入csv作为新列

时间:2017-06-11 07:43:53

标签: r macos csv

我需要帮助编辑文件夹中的多个csv。我需要计算每个文件中的行数,并为文件添加一个新列。新列应该将行数作为列中的第一行,然后为每个后续行下降1。

Current:
ID  V1  V2  V3
1   0.4625  0.917
2   0.9324  0.248
3   0.6691  0.781
4   0.1935  0.330

Proposed:
ID  V1   V2  V3   newcol  
1   0.4  25  0.9  5
2   0.9  24  0.2  4
3   0.6  91  0.7  3
4   0.1   5  0.3  2
5   0.2  44  0.5  1

有人有什么想法吗?我一直在玩终端并尝试这样做。我对r也有一些小经验。如果有帮助,我也会使用mac。

谢谢!

2 个答案:

答案 0 :(得分:2)

我们可以做到

df1$newcol <- rev(seq_len(nrow(df1)))

或者

df1$newcol <-  nrow(df1):1

答案 1 :(得分:1)

知道了!通过akrun的指导,我能够成功地为每个csv添加一列,新列中的行按降序排列。然后我就能把它写回原始文件了!

filenames <- list.files(path=".../pathoffolder", pattern=".*csv")

for(i in filenames) {
   filepath <- file.path(".../pathoffolder", paste(i))
   assign(i,filepath)
   df <- read.csv(filepath)
   df$newcol <- rev(seq_len(nrow(df)))
   write.csv(df, filepath, quote = FALSE, row.names = FALSE)
}