我有兩個data.frames,包含觀察數據,大部分是相同的圖表,但一個來自今年,一個來自2012.我在R studio上使用Windows 7的。 我想要的是:在新的data.frame中創建一個新的列,其中包含5年前的樹的直徑 我是如何需要的:R將比較2個data.frames,並且如果位置和樹ID在兩個它應該複製最近一個新創建列中的2012年data.frame的直徑。 到目前爲止我的代碼是:使用舊數據的data.frame中的數據填充data.frame
df17$dbh12[df17$LOC=="1"] <- ifelse((df12$ID[df12$LOC=="1"]) %in% (df17$ID[df17$LOC=="1"]), df12$DBH[df12$LOC=="1"], NA)
我的問題是,R是做什麼的。但是,這兩個數據幀並不完全相同。 2012年,有些樹木因爲看起來不舒服而未被考慮,但現在它們還活着,我測量了它們。相反,其他樹木已經死亡。我有10塊地塊。作爲例子,我的數據,我的代碼如下所示:
df2012=data.frame(LOC=1, ID=c(1,2,4,5,6), DBH=c(7.0, 7.5, 10.25, 14.5, 6.75))
df2017=data.frame(LOC=1, ID=c(2,3,4,5,6), DBH=c(7.8, 28.7, 10.3, 13.7, 7.8))
df2017$dbh12[df2017$LOC=="1"] <- ifelse((df2012$ID[df2012$LOC=="1"]) %in% (df2017$ID[df2017$LOC=="1"]), df2012$DBH[df2012$LOC=="1"], NA)
所以在最後我有
> df2017
LOC ID DBH dbh12
1 2 7.8 NA
1 3 28.7 7.50
1 4 10.3 10.25
1 5 13.7 14.50
1 6 7.8 6.75
我的問題:爲什麼樹2沒有胸徑?爲什麼樹3有一個dbh? R是否只是複製它們,無論ID是什麼?我的錯誤在哪裏?
令人驚歎!而且這不僅僅是爲了位置1,所有10個位置都是用這一行完成的!萬分感謝! (只是好奇心,爲什麼我的代碼沒有工作?) – Qiyuan
@Qiyuan我還更新了您正在開發的基礎R解決方案 – akrun