根据documentation,dplyr rowwise
运算符可用于“支持需要应用于每一行的任意复杂操作”。我觉得这有点模糊。例如,加法似乎没有提高到行式所需的复杂度:
df <- data.frame( a = c(1,2,3,4), b = c(5,6,7,8))
df %>%
mutate(
c = a+b,
)
a b c
1 1 5 6
2 2 6 8
3 3 7 10
4 4 8 12
sum
确实非常相似。例如:
df %>%
mutate(
d = sum(a,b)
) %>%
rowwise() %>%
mutate(
e = sum(a,b)
)
a b d e
1 1 5 36 6
2 2 6 36 8
3 3 7 36 10
4 4 8 36 12
我的问题是,在dplyr操作过程中到底何时需要使用rowwise
?任何时候该操作不是一种基本的算术运算,还是有其他一些规则可以确定何时将一个操作自动将其输入按行还是按列进行处理?
答案 0 :(得分:0)
我认为简短的答案是sum
,max
不是“矢量化的”,它可以接受多个矢量并为您提供汇总的答案,这有点奇怪。我通常尝试使用不需要rowwise
的函数,因为它的运行速度很慢,并且出错的风险很高。您的简单案例的解决方案可能是:
library(hablar)
library(dplyr)
df <- data.frame( a = c(1,2,3,4), b = c(5,6,7,8))
df %>% mutate(c = row_sum(a:b))