繁体   English   中英

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

[英]Apply custom function that returns multiple values after dplyr::rowwise()

我尝试使用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')})

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

但是上面的实现失败了。

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

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

如果我们需要创建一个返回vectorlisttibble的函数

library(dplyr)
library(tidyr)
f1 <- function(x, y) tibble(A1 = x + 5, A2 = y + 1)
dat %>% 
   mutate(Anew = f1(A, D)) %>%
   unnest_wider(Anew)
# A tibble: 3 × 6
      A     C     D     M    A1    A2
  <int> <int> <int> <int> <dbl> <dbl>
1     1     1     1     1     6     2
2     2     2     2     2     7     3
3     3     3     3     3     8     4

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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