2016-05-04 13 views
-1

私のcsvファイル(テスト)には多くの行と列が含まれています(header=T)。 Rを使用して新しいcsvファイル(test1)に特定の行(24の2つの区切り)をコピーしたいとします(たとえば、2行目を開始した場合は2,26,50,74 .....、410の行が必要です)。同様に、行(8,32,56 ...など)を新しいファイル(test2)に、行(12,36,60など)を新しいファイル(test3)にコピーします。誰かが私を助けることができるのだろうか? (激しい肉体労働で働いていない)Rプログラムを使用してcsvファイルから新しい行に書き込みます

私のテストコード:このような

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

あなたは 'test [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行目から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さんありがとうございました

関連する問題