我有一個包含4列(YY,MM,DD,RR)的csv文件。這裏的樣本數據:根據列中的值拆分csv,然後按行合併/綁定輸出
目前的格式有9861行和4個colums像這樣(每日從數據1981-2007):
YY,MM,DD,RR
1981,1,1,0
1981,1,2,0
1981,1,3,-9999
1981,1,4,-9999
1981,1,5,0
1981,1,6,0
.....
.....
2007,1,31,-9999
我想分裂每年csv文件。輸出應該是具有相同列數的27個csv文件。 例如,1981.csv包含:
YY, MM, DD, RR
1981, 1, 1, 0.4
1981, 1, 2, 0
.....
.....
1981, 12, 31, 0.5
這裏是我的腳本:
dat <- read.csv("test_dat.csv", header = T, sep = ",")
spt1<-split(dat,dat$YY)
lapply(names(spt1), function(x){write.csv(spt1[[x]], file = paste0("output",x, sep = "",".csv"),row.names=F)})
我想按行輸出的CSV文件綁定,使得輸出將是這樣的:
YY,1,2,3,4,5,6,7,8,9,10,......,365
1981,val1,val2,.............,val365
...
...
2008,val1,val2,.............,val365
閏年應該有366天。
在R中有這麼容易嗎?
我會很感激任何幫助。
鑑於您在三列有個約會和一些類型的測量,蔓延到寬形式真的不明智的。此外,目前還不清楚你如何重塑形狀,因爲你沒有一個ID變量來變成標題。 – alistaire
@alistaire。我試圖創建一個像這樣的虛擬列:dat $ test <-seq(1,9861,1),以便我可以將它用作標題,但是當我嘗試dcast時,這些值都是NAs。 MM和DD並不重要。 – ichabod
好吧,'RR'每行只有一個值,所以你的列只有一個非廣泛形式的'''每列值。因此,爲什麼這不是一個有用的轉變; 9681 * 4!= 27 * 9862. – alistaire