R语言如何将控制台计算结果保存到数据框的新增列
问题原因
你编写的dplyr管道代码仅会在运行时临时生成添加了求和列的新数据框,不会直接修改原df对象,因此你只会在控制台看到计算结果,原数据框不会更新。
解决方法
只需要将管道运行的结果赋值回原df变量即可:
df <- df %>% replace(is.na(.), 0) %>% mutate(sum = rowSums(.[9:38]))
如果你不想覆盖原有数据框,也可以赋值给新的变量:
df_with_sum <- df %>% replace(is.na(.), 0) %>% mutate(sum = rowSums(.[9:38]))
补充说明
上述代码中replace(is.na(.), 0)会将整个数据框的所有NA值替换为0,如果你只需要对求和的30列做NA处理,可以调整写法如下,避免修改其他列的原始数据:
df <- df %>% mutate(sum = rowSums(across(9:38, ~replace_na(.x, 0))))
内容的提问来源于stack exchange,提问作者Paul
相关产品推荐
相关产品推荐

