gpt4 book ai didi

r - dplyr::mutate(分配 na.rm =TRUE)

转载 作者:行者123 更新时间:2023-12-03 13:44:38 25 4
gpt4 key购买 nike

我有一个包含 100 个变量的 data.frame。我只想使用 mutate 获得三个变量的总和(不是 summarise )。

如果 3 个变量中的任何一个中有 NA,我仍然想得到 sum .为了做到这一点,使用 mutate ,我全部替换了NA值与 0使用 ifelse然后我得到了 sum .

library(dplyr)
df %>% mutate(mod_var1 = ifelse(is.na(var1), 0, var1),
mod_var2 = ifelse(is.na(var2), 0, var2),
mod_var3 = ifelse(is.na(var3), 0, var3),
sum = (mod_var1+mod_var2+mod_var3))

有没有更好(更短)的方法来做到这一点?

数据
df <- read.table(text = c("
var1 var2 var3
4 5 NA
2 NA 3
1 2 4
NA 3 5
3 NA 2
1 1 5"), header =T)

最佳答案

rowwise()是我的首选功能。就像 group_by()但它将每一行视为一个单独的组。

df %>% rowwise() %>% mutate(Sum = sum(c(var1, var2, var3), na.rm = TRUE))

关于r - dplyr::mutate(分配 na.rm =TRUE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41530007/

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