0
應用函數以柱,用值I具有R中的下列問題:從其它行
讓我們假設下列數據幀:
a b c d e
1 1 1 1 1 15.5
2 1 1 1 2 8.3
3 1 1 2 1 12.4
4 1 1 2 2 3.2
...
欲函數f(x,y)
適用於從列中的數字e
,其中x和y從除d
(當然還有e
)以外的所有列中具有相同值的兩行繪製。
輸出應該是一個新的數據框,其中列d
被刪除(因爲「合併」使該列無關),列e
是應用函數的結果。
所以在上面的例子中,假設f(x,y)
是此外,新的數據幀應該是這樣的:
a b c e
1 1 1 1 23.8
3 1 1 2 15.6
...
我曾嘗試到目前爲止看起來像下面的,感覺很不雅觀:
data.d1 <- subset(data, d==1)
for (index in 1:nrow(data.d1))
row1 <- data.d1[index,]
row2 <- data[data$a==row1$a & data$b==row1$b & data$c==row1$c & data$d==2,]
data[index,"e"] <- f(row1$e, row2$e)
}
data <- data[-match(c("d"), names(data))]
有人有一個更乾淨的解決方案,使用apply()
之類的? 在此先感謝!