簡體   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