[英]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
中即时定义以保持我的代码整洁。
任何指针都会非常有帮助。
如果我们需要创建一个返回vector
或list
或tibble
的函数
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.