gpt4 book ai didi

r - 在 dplyr mutate 中使用 sum 函数

转载 作者:行者123 更新时间:2023-12-04 02:50:08 24 4
gpt4 key购买 nike

我正在尝试在 dplyr 的 mutate 函数中使用 sum 函数。然而,我最终得到了意想不到的结果。下面是重现问题的代码

chk1 <- data.frame(ba_mat_x=c(1,2,3,4),ba_mat_y=c(NA,2,NA,5))

我使用下面的代码创建了另一列,该列总结了上述 2 列
chk2 <- chk1 %>% dplyr::mutate(ba_mat=sum(ba_mat_x+ba_mat_y,na.rm = T))

我用过 na.rm=T因为我有 NA s 变量 ba_mat_y .我得到的结果如下
        ba_mat_x ba_mat_y ba_mat
1 1 NA 13
2 2 2 13
3 3 NA 13
4 4 5 13

然而,预期的结果是
      ba_mat_x ba_mat_y ba_mat
1 1 NA 1
2 2 2 4
3 3 NA 3
4 4 5 9

最佳答案

您需要 rowSums,以获取每行的列总和。

> chk1 %>% dplyr::mutate(ba_mat = rowSums(., na.rm=T))

ba_mat_x ba_mat_y ba_mat
1 1 NA 1
2 2 2 4
3 3 NA 3
4 4 5 9

您的其他公式 ( sum(ba_mat_x+ba_mat_y,na.rm = T)) ) 表示:
  • 首演chk1$ba_mat_x + chk1$ba_mat_y :1 + NA, 2 + 2, 3 + NA, 4 + 5 ,结果是 NA, 4, NA, 9
  • 然后取sum(na.rm=T)其中,即 13
  • 关于r - 在 dplyr mutate 中使用 sum 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55428618/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com