繁体   English   中英

何时操作复杂性需要dplyr rowwise?

[英]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 任何时候操作都不是基本算术操作,或者是否存在一些其他规则,以便操作何时自动将其输入视为逐行与列方式?

我认为简短的答案是summax不是“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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM