我的大部分問題都是如何提取和組織數據,沒有事先培訓,我爲我無法清楚表達我想要的內容而道歉。我希望我甚至能夠知道如何用文字或在線閱讀文章。這裏是我的問題現在:如何在r中對子集和組進行循環?
我有一個信息數據框有一個唯一的組ID爲ID,有153個唯一的ID,但我有來自這些組的信息> 6000行。
我想要做的是每次從2組中獲取所有信息,並寫出一個包含所有相關信息的簡單csv文件。如果整體個體數量爲奇數(n = 153),那麼這將如何工作。
我想是這樣的:
IDs = unique(dat$ID)
for (i in length(IDs)){
IDgp = subset(dat, dat$ID==IDs[i] & dat$ID==IDs[i+1])
write.csv(IDgp, paste(IDgp[i],".csv")
i = i+2
}
這不工作,我不知道如何得到它來增加下一個「組2」。我知道,循環笨重,我曾想過也許ddply可能工作,甚至是一個命令而不是子集。由於在R中有很多方法可以做事,我不知道甚至可以稱之爲我想做的事情。我想我有辦法讓它變得複雜。
我一直在尋找答案,並將其作爲可能性發現,但不知道如何讓它一次寫入超過1組的信息,而且我不清楚函數(x)命令正在做:
d_ply(dat, "ID", function(x)
write.csv(x[i], file = paste(x$ID[i], ".csv")
, row.names = FALSE))
您是否需要將所有可能的組標識對的數據保存在不同的文件中? – DrDom 2012-04-23 19:14:14
我可能不會這樣做,但你可以使用while循環代替。 – 2012-04-23 19:15:08
@DrDom不,不是所有可能的對,只是按順序依次處理列表 - 生成一個文件,其中包含來自組1和2的信息,然後是來自組3和4的文件,然後是來自5和6的文件。 – Kerry 2012-04-23 19:17:51