首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在连接后使用tidyeval列

在连接后使用tidyeval列
EN

Stack Overflow用户
提问于 2020-11-04 10:25:14
回答 1查看 37关注 0票数 0

我有一个将数据连接在一起的函数,然后应该取一列的平均值。

在这里,我可以连接数据,但我不确定如何以足够通用的方式对x.xx.y列进行平均

代码语言:javascript
复制
 library(dplyr) 

a <- tibble(id = 1:3, x = 4:6)
b <- tibble(id = 1:3, x = 16:18)


join_then_average <- function(df1, df2, var) {
  full_join(df1, df2, by = "id")  # i want to average x.x, and x.y
}

join_then_average(a, b)
#> # A tibble: 3 x 3
#>      id   x.x   x.y
#>   <int> <int> <int>
#> 1     1     4    16
#> 2     2     5    17
#> 3     3     6    18

从概念上讲,我想写一些类似这样的东西:

代码语言:javascript
复制
mutate({{var}} := rowMeans(c({{var}}.x, {{var}}.y), na.rm = T)

但这不管用。我不确定解决这个问题的最好方法。

EN

回答 1

Stack Overflow用户

发布于 2020-11-04 10:34:19

您可以选择其中包含var的列并采用rowMeans

代码语言:javascript
复制
library(dplyr)

join_then_average <- function(df1, df2, var) {
  full_join(df1, df2, by = "id")  %>%
    mutate(x = rowMeans(select(., contains(var))))
}

join_then_average(a, b, 'x')

# A tibble: 3 x 4
#     id   x.x   x.y     x
#  <int> <int> <int> <dbl>
#1     1     4    16    10
#2     2     5    17    11
#3     3     6    18    12
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64673496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档