使用reduce
和left_join
来合并table_base
table_a
table_b
。方法A可以工作,但必须输入对象名称,有点无聊。方法B可以得到对象名称,但不能返回正确的结果,如何修复?谢谢!
library(tidyverse)
table_base <- data.frame(cat=c("a","b","c","d"))
table_a <- data.frame(cat=c("a","b"),
value=c(1,2))
table_b <- data.frame(cat=c("a","c","d"),
value=c(7,9,10))
# method A: ok, but have to input object name one by one in list
reduce(list(table_base,table_a,table_b),left_join,by='cat')
# method B: can't work
reduce(list(mget(ls(pattern="^table"))),left_join,by='cat')
字符串
1条答案
按热度按时间bejyjqdl1#
需要解决的两个问题
mget
已经返回了一个列表,所以您不再需要list()
来 Packagemget
1.列表中的括号顺序很重要,如果你想获得相同的结果,你需要调整迭代
left_join
的括号顺序代码(仅示例)
字符串