簡體   English   中英

使用Tibble列作為函數輸入的Tidyverse解決方案

[英]Tidyverse Solution for Using Tibble Columns as Input to a Function

我試圖在一個tibble中的兩個列向量的組合上運行一個函數。

library(tidyverse)
combination <- tibble(x = c(1, 2), y = c(3, 4))

sum_square <- function(x, y) {
  x^2+y^2
}

我想運行此函數列x和列y的所有組合:

sum_square(1, 3)
sum_square(1, 4)
sum_square(2, 3)
sum_square(2, 4)

理想情況下,我想要一個整合的解決方案。

我們可以先expand然后在擴展數據集上應用sum_square

library(tidyverse)
expand(combination, x, y) %>% 
      mutate(new = sum_square(x, y))
# A tibble: 4 x 3
#      x     y   new
#  <dbl> <dbl> <dbl>
#1     1     3    10
#2     1     4    17
#3     2     3    13
#4     2     4    20

另一種選擇是outer

combination %>%
       reduce(outer, FUN = sum_square) %>% 
       c  %>%
       tibble(new = .)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM