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以保持代码整洁。
任何指针都会非常有帮助。
如果我们需要创建一个返回 avector或list或 a 的函数tibble
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\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
268 次 |
| 最近记录: |