使用R编程将csv文件中的某些行写入新的行

时间:2016-05-04 18:51:28

标签: r csv

我的csv文件(test)包含许多行和列(header=T)。我想使用R将某些行(相隔24个)复制到一个新的csv文件(test1)中(例如,如果我从第二行开始,我想要行2,26,50,74 .....,410)。同样,将行(8,32,56 ......等)复制到较新的文件(test2)和行(12,36,60..etc)复制到较新的文件(test3)。我想知道是否有人可以帮助我?

我的测试代码(不使用强烈的手工劳动):

export=test[c("2","26","50"),]
write.csv(export,file="test1.csv")

2 个答案:

答案 0 :(得分:1)

@RichardScriven也回答了我的问题,但答案已经删除了,我想知道他的答案(它没有给出确切的解决方案,只需稍作调整即可)。 他的解决方案:

x=c(2,8,12)
nr=nrow(test)
for(i in seq_along(x)){
write.csv(test[seq(x[i],nr,24),],file=sprintf("test%s.csv",i))
}

它正在跳过一行,所以我只将第一行更改为 X = C(1,7,11-三) 它就像一个魅力。 谢谢Richard,lebatsnok和Gopala

答案 1 :(得分:0)

类似这样的事情(如果我理解你的问题;代码未经测试但可能会运气好)

df <- read.csv(....)
splitter <- rep(1:24, NROW(df)/23)[1:NROW(df)]
dfs <- split(df, splitter)
mapply(function(x,y) write.csv(x,y), dfs, paste0(1:length(dfs), ".csv")