大きなcsvファイルnew.dat
には100sの列名があります。私はすべての新しいサブセットの最初の列を維持する列名ごとにnew.dat
を分割したいとします。.csv
と書かれています。大きなデータフレームを列で分割して個々のCSVに書き込む方法
new.dat
new.dat <- structure(list(Sequence = c("AAAAAACCTGTTCTGATA", "AAAAAAGGCTGTTACTGAGC",
"AAAAACATTCGAGCGAGATCTCT", "AAAAACCTCGACTTCGGAAG", "AAAAAGCTCGTAGTTGAA",
"AAAAAGCTCGTAGTTGAAC"), WT1 = c("84", "104", "80", "35", "112",
"350"), WT2 = c("149", "478", "502", "186", "577", "911"), AGO1 = c("32",
"147", "433", "51", "258", "353"), AGO2 = c("37", "222", "355",
"85", "408", "420"), DCL1 = c("56", "185", "291", "48", "167",
"273"), DCL2 = c("59", "176", "294", "31", "185", "245"), NAs = c(0L,
0L, 0L, 0L, 0L, 0L)), .Names = c("Sequence", "WT1", "WT2", "AGO1",
"AGO2", "DCL1", "DCL2", "NAs"), row.names = c(NA, 6L), class = "data.frame")
のでnew.dat
データからの結果は、7つのCSVファイルを持っている必要があります。 Sequence
とWT1
列の最初のCSV WT1.csv
、などSequence
とWT2
列とを有する第二csvファイルWT2.csv
..
これは私がしようとしているコードです。私がここで紛失しているものを提案してください。 ありがとう
for (name in colnames(new.dat[-1])){
tmp=subset(new.dat$Sequence, colnames==name)
fn= name
#Save the CSV file
write.csv(tmp,fn,row.names=FALSE)
}
をファイルに書き込むことができますことを意味しましたあなたは複数の 'WT1'列を持っていますか?もしそうなら、どんなパターンもありますか?これらはプレフィックスですか? – akrun
@akrunいいえ、すべての新しいcsvファイルに 'Sequence'列と1つの追加列を残したいと思います。列名はユニークで繰り返しはありません。 – MAPK
その場合は、最初の列、つまり 'lst < - Map(function(x、y、z)setNames(cbind(x、y)、c(" Sequence "、z))を使用して列とcbindをループします。 (new.dat [1])、new.dat [-1]、名前(new.dat)[ - 1]) 'を書き、csvに書き込んでください – akrun