R 在多个csv'中计算行数;s、 写入csv';s按降序排列为新列
我需要帮助编辑文件夹中的多个csv。我需要计算每个文件中的行数,并向文件中添加一个新列。新列的行数应为列中的第一行,然后每一行下降1R 在多个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
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)
}