gpt4 book ai didi

r - dplyr mutate rowSums 计算或自定义函数

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

我正在尝试从行计算中改变一个新变量,如下所示 rowSums

iris %>% 
mutate_(sumVar =
iris %>%
select(Sepal.Length:Petal.Width) %>%
rowSums)

结果是“sumVar”被截断为其第一个值(10.2):

Source: local data frame [150 x 6]
Groups: <by row>

Sepal.Length Sepal.Width Petal.Length Petal.Width Species sumVar
1 5.1 3.5 1.4 0.2 setosa 10.2
2 4.9 3.0 1.4 0.2 setosa 10.2
3 4.7 3.2 1.3 0.2 setosa 10.2
4 4.6 3.1 1.5 0.2 setosa 10.2
5 5.0 3.6 1.4 0.2 setosa 10.2
6 5.4 3.9 1.7 0.4 setosa 10.2
..
Warning message:
Truncating vector to length 1

应该rowwise应用吗?或者在此类计算中使用正确的动词是什么。

编辑:

具体来说,有没有办法用dplyr实现内联自定义函数?

我想知道是否可以这样做:

iris %>% 
mutate(sumVar = colsum_function(Sepal.Length:Petal.Width))

最佳答案

这更像是一种解决方法,但可以使用

iris %>% mutate(sumVar = rowSums(.[1:4]))
<小时/>

正如注释中所写,您还可以在 mutate 内部使用 select 来获取您想要求和的列,例如

iris %>% 
mutate(sumVar = rowSums(select(., contains("Sepal")))) %>%
head

iris %>% 
mutate(sumVar = select(., contains("Sepal")) %>% rowSums()) %>%
head

关于r - dplyr mutate rowSums 计算或自定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27354734/

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