[英]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.