[英]When is operation complexity such that dplyr rowwise is needed?
根据文档 ,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
? 任何时候操作都不是基本算术操作,或者是否存在一些其他规则,以便操作何时自动将其输入视为逐行与列方式?
我认为简短的答案是sum
, max
不是“vectorised”,它接受多个向量并给你汇总的答案,有点奇怪。 我通常尝试使用不需要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))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.