示例數據如何使用dplyr或其他方法獲取同一組中其他行的列的總和?
set.seed(1)
d <- iris[sample.int(nrow(iris), 5), ]
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 40 5.1 3.4 1.5 0.2 setosa
# 56 5.7 2.8 4.5 1.3 versicolor
# 85 5.4 3.0 4.5 1.5 versicolor
# 134 6.3 2.8 5.1 1.5 virginica
# 30 4.7 3.2 1.6 0.2 setosa
對於每一行,我要計算的值,這是相同的Species
在Petal.Width
其他行的總和。例如,對於第2行,具有相同物種組的唯一其他行是第3行,因此結果將是sum(1.5)。
預期輸出
d$newcol <- c(0.2, 1.5, 1.3, 0, 0.2)
# > d
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species newcol
# 40 5.1 3.4 1.5 0.2 setosa 0.2
# 56 5.7 2.8 4.5 1.3 versicolor 1.5
# 85 5.4 3.0 4.5 1.5 versicolor 1.3
# 134 6.3 2.8 5.1 1.5 virginica 0.0
# 30 4.7 3.2 1.6 0.2 setosa 0.2
我嘗試下面的代碼,它沒有工作:
library(dplyr)
d %>% group_by(Species) %>%
mutate(
newcol = sum(Petal.Width[1:n() != row_number()])
)
非常感謝! – mt1022