使用dplyr,您可以像这样做:
iris %>% head %>% mutate(sum=Sepal.Length + Sepal.Width)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species sum
1 5.1 3.5 1.4 0.2 setosa 8.6
2 4.9 3.0 1.4 0.2 setosa 7.9
3 4.7 3.2 1.3 0.2 setosa 7.9
4 4.6 3.1 1.5 0.2 setosa 7.7
5 5.0 3.6 1.4 0.2 setosa 8.6
6 5.4 3.9 1.7 0.4 setosa 9.3
但是在上面,我用列名来引用列。如何使用列索引1
和2
来实现相同的结果?
我有以下方法,但感觉不够优雅。
iris %>% head %>% mutate(sum=apply(select(.,1,2),1,sum))
Sepal.Length Sepal.Width Petal.Length Petal.Width Species sum
1 5.1 3.5 1.4 0.2 setosa 8.6
2 4.9 3.0 1.4 0.2 setosa 7.9
3 4.7 3.2 1.3 0.2 setosa 7.9
4 4.6 3.1 1.5 0.2 setosa 7.7
5 5.0 3.6 1.4 0.2 setosa 8.6
6 5.4 3.9 1.7 0.4 setosa 9.3
group_by
不兼容:iris%>% group_by(Species)%>% mutate(sum = .[[1]] + .[[2]])
,而iris%>% group_by(Species)%>% mutate(sum = Sepal.Length + Sepal.Width)
可以。 - MrFlickungroup()
然后重新分组。我以前发现过这是必要的。 - Rich Scrivendplyr
1.0.0,有一个解决方法:df %>% group_by(eval(names(.)[1])) %>% ...
- Jorge Esteban Mendoza|>
不支持.
符号表示法。 - cbrnr