4
我相信ddply ist我需要爲我的任務的工具,我有點難以得到正確的結果。我已經閱讀了ddply幾個小時,並嘗試過使用不同的代碼,但我自己並沒有進一步的瞭解。 這裏是一個例子的數據幀ddply滯後與多個子集
station <- c(rep("muc",13), rep("nbw", 17))
year <- c(rep(1994,4),rep(1995,4),rep(1996,5),rep(1994,5), rep(1995,4), rep(1996,4), rep(1997, 4))
depth <- c(rep(c("HUM","31-60","61-90","91-220"),2), rep(c("HUM","0-30", "31-60","61-90","91-220"),2),rep(c("HUM","0-30", "31-60","91-220"),1),rep(c("HUM","0-30", "31-60","61-90"),2))
doc <- c(80, 10, 3, 2,70, 15, 5, 5,70, 20, 5, 5, 2, 40, 10, 3, 2, 1,50, 15, 5, 2, 45, 20, 2, 1,35, 8, 2, 1)
df <-data.frame(station,year,depth,doc)
df
深度是指土壤深度(HUM =腐殖質層)和DOC是用於土壤深度測量的溶解的有機碳(DOC)。請注意,並非每年都有文檔測量,並且缺少一些深度類別。這很煩人,但經常在我的數據集中出現。 隨着ddply,我想添加一個列到這個數據框,這樣,對於每個深度,上述躺在土壤層的文檔返回和HUM NA應該給出,因爲沒有什麼是在腐殖質層頂部。 爲例:
depth doc doc_m1
HUM 80 NA
31-60 10 80
61-90 3 10
91-220 2 3
在數據幀這當然應計算爲每年每深度。我想避免哪些和循環,看起來ddply適合這個,但是我沒有任何運氣得到延遲命令來使用ddply。 這是據我的代碼(顯然不是很遠)有:
doc <- ddply(df, .(year), transform,
doc_m1 = ????)
有沒有人有一個建議? 在此先感謝!
非常感謝,這工作完美!我對R的瞭解越多,我越發現正確的解決方案通常是最簡單的解決方案,它只是找出那些棘手問題的簡單解決方案。 – 2012-03-01 06:34:01