sum 和 + 都无法给出每一行的结果
df <- data.frame(x1=c(1,1),x2=c(2,3),y1=c(NA,1),y2=c(NA,1))
df <- mutate(df, cost = prod(x1,x2,na.rm = T)+prod(y1,y2,na.rm = T),na.rm=T)
结果:
x1 x2 y1 y2 cost
1 1 2 NA NA 7
2 1 3 1 1 7
预期:
x1 x2 y1 y2 cost
1 1 2 NA NA 3
2 1 3 1 1 4
最佳答案
我们可以添加rowwise
,否则prod
对整列进行乘法,而我们需要每行总和的乘积
library(dplyr)
df %>%
rowwise %>%
mutate(cost = prod(x1,x2,na.rm = TRUE) + prod(y1,y2,na.rm = TRUE)) %>%
ungroup
# A tibble: 2 x 5
# x1 x2 y1 y2 cost
# <dbl> <dbl> <dbl> <dbl> <dbl>
#1 1 2 NA NA 3
#2 1 3 1 1 4
关于r - 为什么 dplyr 无法按行生成结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61698481/