应用在 dplyr::rowwise() 之后返回多个值的自定义函数

Bri*_*ith 2 r dplyr

dplyr::rowwose()我尝试使用以下方法在每一行上应用自定义函数

library(dplyr)
dat = data.frame('A' = 1:3, 'C' = 1:3, 'D' = 1:3, 'M' = 1:3)
dat %>%
    rowwise() %>%
    mutate(c('A1', 'A2') = function(x) {c('A' + 5, 'D')})
Run Code Online (Sandbox Code Playgroud)

所以基本上在这里,我的自定义函数采用列A and D,然后执行一些计算并返回一个向量,我想将其附加到原始数据帧。

然而,上述实施失败。

您能否帮助我了解如何使用rowwise()函数来执行上述计算?上面的应用函数示例相当简单,但是在我原来的情况下,这样的函数非常复杂。另外,我不喜欢独立定义该函数,而是想在其中动态定义mutate以保持代码整洁。

任何指针都会非常有帮助。

akr*_*run 5

如果我们需要创建一个返回 avector或list或 a 的函数tibble

\n
library(dplyr)\nlibrary(tidyr)\nf1 <- function(x, y) tibble(A1 = x + 5, A2 = y + 1)\ndat %>% \n   mutate(Anew = f1(A, D)) %>%\n   unnest_wider(Anew)\n# A tibble: 3 \xc3\x97 6\n      A     C     D     M    A1    A2\n  <int> <int> <int> <int> <dbl> <dbl>\n1     1     1     1     1     6     2\n2     2     2     2     2     7     3\n3     3     3     3     3     8     4\n
Run Code Online (Sandbox Code Playgroud)\n