2016-05-04 29 views
-1

我的csv文件(測試)包含許多行和列(header=T)。我想用R(例如,如果我從第二行開始,我想要行2,26,50,74 .....,410)將某些行(相隔24個)複製到一個新的csv文件(test1)中。同樣,將行(8,32,56 ...等)複製到較新文件(test2)和行(12,36,60..etc)複製到較新文件(test3)。我想知道有人能幫助我嗎?使用R編程將某些行從csv文件寫入新文件

我的測試代碼(不激烈的體力勞動工作):

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

你可以試試'[seq(2,nrow(test),24),]'等等...... – Gopala

+0

@ZheyuanLi,該怎麼做? – user2153702

+0

Gopala,謝謝你的代碼工作,但不會將結果寫入新文件。 – user2153702

回答

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") 
+0

lebatsnok,這項工作...等等。它以24步開始從第2行到第24行創建文件!謝謝 – user2153702

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