dplyr在一个函数中联接两个表,其中一个变量名是该函数的参数

强尼

我正在尝试在函数中使用dplyr连接两个表,其中变量名之一由该函数的参数定义。在其他dplyr功能,通常用于非标准评价,如版本selectselect_renamerename_等,但不适合_join家庭。我找到了这个答案,但是无法在下面的代码中使用它:

df1 <- data.frame(gender = rep(c('M', 'F'), 5), var1 = letters[1:10])

new_join <- function(df, sexvar){

  df2 <- data.frame(sex = rep(c('M', 'F'), 10), var2 = letters[20:1])

  # initial attempt using usual dplyr behaviour:
  # left_join(df, df2, by = c(sexvar = 'sex'))

  # attempt using NSE:
  # left_join(df, df2, 
  #           by = c(eval(substitute(var), list(var = as.name(sexvar)))) = 'sex'))

  # attempt using setNames:
  # left_join(df, df2, by = setNames(sexvar, 'sex'))

}

new_join(df1, 'gender')

第一次和第二次尝试给出错误

错误:在rhs中找不到'sexvar'列,无法加入

而最后一次尝试给出错误

错误:在lhs中找不到“性别”列,无法加入,

至少表明它知道我想要该列gender,但不知何故不将其视为列标题。

谁能指出我要去哪里错了?

亚历克斯·约阿尼德斯(Alex Ioannides)

尝试:

df1 <- data.frame(gender = rep(c('M', 'F'), 5), var1 = letters[1:10])

new_join <- function(df, sexvar){

  df2 <- data.frame(sex = rep(c('M', 'F'), 10), var2 = letters[20:1])

  join_vars <- c('sex')
  names(join_vars) <- sexvar

  left_join(df, df2, by = join_vars)
}

new_join(df1, 'gender')

我敢肯定,有一种更优雅的方法可以通过使用惰性评估等来使它正常工作,但是与此同时,这应该可以使您正常运行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

dplyr在一个函数中联接两个表,其中一个变量名是该函数的参数

来自分类Dev

在一个联接中联接两个表

来自分类Dev

在两个函数中声明变量,但仅初始化其中一个

来自分类Dev

Hibernate:如何用其中一个没有ID的两个表联接?

来自分类Dev

定义一个名为food的函数,该函数接收两个参数

来自分类Dev

如何在两个单独的变量上联接两个表,其中一个变量具有相同的名称

来自分类Dev

在mysql中联接两个表时在一个表上使用限制

来自分类Dev

如何在HQL中联接两个表以获取一个域类的结果

来自分类Dev

如何在PostgreSQL中联接两个表来更新一个

来自分类Dev

在一个datagrid usig Linq C#WPF中联接两个表

来自分类Dev

尝试从一个函数返回一个数据集,该函数从两个函数打印

来自分类Dev

在AngularJS中一个接一个地执行两个函数

来自分类Dev

当其中一个函数具有带有约束的通用参数时,无法声明两个具有相同名称的函数

来自分类Dev

一个函数调用中的两个参数

来自分类Dev

在一个函数中返回两个变量

来自分类Dev

在一个函数中返回两个变量

来自分类Dev

查找两个表,其中一个表具有冗余值

来自分类Dev

如何使用SQL Server从两个引用同一表的键中联接一个表?

来自分类Dev

如何联接三个表,其中一个表与其他两个表的ID不匹配?

来自分类Dev

如何定义一个具有2个参数的函数,其中一个是Tkinter的“事件”参数?

来自分类Dev

MYSQL:连接两个表并使用其中一个的随机列

来自分类Dev

连接两个SQL表,其中一个连接字段被多次使用

来自分类Dev

如何比较两个 MySQL 表然后更新其中一个

来自分类Dev

在函数的一个参数内插入两个变量

来自分类Dev

一次将两个记录插入两个表,其中一个表使用另一个作为外键?

来自分类Dev

用一个函数和一个参数生成两个序列

来自分类Dev

是否有lodash函数来合并两个对象并删除其中一个的属性(如果另一个不存在)?

来自分类Dev

从联接两个表中获得唯一值,其中一个表可能具有特定列的重复值

来自分类Dev

如何连接两个字符串(一个是变量),同时仍然能够重用其中一个参数(变量)?

Related 相关文章

  1. 1

    dplyr在一个函数中联接两个表,其中一个变量名是该函数的参数

  2. 2

    在一个联接中联接两个表

  3. 3

    在两个函数中声明变量,但仅初始化其中一个

  4. 4

    Hibernate:如何用其中一个没有ID的两个表联接?

  5. 5

    定义一个名为food的函数,该函数接收两个参数

  6. 6

    如何在两个单独的变量上联接两个表,其中一个变量具有相同的名称

  7. 7

    在mysql中联接两个表时在一个表上使用限制

  8. 8

    如何在HQL中联接两个表以获取一个域类的结果

  9. 9

    如何在PostgreSQL中联接两个表来更新一个

  10. 10

    在一个datagrid usig Linq C#WPF中联接两个表

  11. 11

    尝试从一个函数返回一个数据集,该函数从两个函数打印

  12. 12

    在AngularJS中一个接一个地执行两个函数

  13. 13

    当其中一个函数具有带有约束的通用参数时,无法声明两个具有相同名称的函数

  14. 14

    一个函数调用中的两个参数

  15. 15

    在一个函数中返回两个变量

  16. 16

    在一个函数中返回两个变量

  17. 17

    查找两个表,其中一个表具有冗余值

  18. 18

    如何使用SQL Server从两个引用同一表的键中联接一个表?

  19. 19

    如何联接三个表,其中一个表与其他两个表的ID不匹配?

  20. 20

    如何定义一个具有2个参数的函数,其中一个是Tkinter的“事件”参数?

  21. 21

    MYSQL:连接两个表并使用其中一个的随机列

  22. 22

    连接两个SQL表,其中一个连接字段被多次使用

  23. 23

    如何比较两个 MySQL 表然后更新其中一个

  24. 24

    在函数的一个参数内插入两个变量

  25. 25

    一次将两个记录插入两个表,其中一个表使用另一个作为外键?

  26. 26

    用一个函数和一个参数生成两个序列

  27. 27

    是否有lodash函数来合并两个对象并删除其中一个的属性(如果另一个不存在)?

  28. 28

    从联接两个表中获得唯一值,其中一个表可能具有特定列的重复值

  29. 29

    如何连接两个字符串(一个是变量),同时仍然能够重用其中一个参数(变量)?

热门标签

归档