Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在多个csv'中计算行数;s、 写入csv';s按降序排列为新列_R_Macos_Csv - Fatal编程技术网

R 在多个csv'中计算行数;s、 写入csv';s按降序排列为新列

R 在多个csv'中计算行数;s、 写入csv';s按降序排列为新列,r,macos,csv,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

我需要帮助编辑文件夹中的多个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电脑

谢谢

我们能行

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

df1$newcol明白了!在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)
}

filename感谢您的快速回复,akrun。不幸的是,我认为你的回答完全超出了我的理解力。您的回答是否意味着我首先需要将csv作为数据帧加载到r中,然后以这种方式进行修改?还有,我想我需要一个循环。再次感谢您的帮助。@cdwhiteiv如果您有csv文件,则可能需要使用
read.csv/read.table
创建对象
df
,即
df谢谢。我只是试着从下面看,但似乎不起作用。我没有提到的是,然后我需要将这些数据帧导出回csv格式。@cdwhiteiv您可以使用
write.csv(df1,“yourfile.csv”,quote=FALSE,row.names=FALSE)
for(I in filenames){filepath)导出它
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)
}