两种等效的内部联接方式,但其中一种会产生错误(R)
在R的内部连接函数中,参数by被记录为“要连接的变量的字符向量” 这两个示例表如下所示两种等效的内部联接方式,但其中一种会产生错误(R),r,inner-join,R,Inner Join,在R的内部连接函数中,参数by被记录为“要连接的变量的字符向量” 这两个示例表如下所示 tb1 <- data.frame(var1 = c(1,3,8,4,2), "var2"=c(-1.1,3.3,4.2,2.3,-3.2), key=c("a","c","b","c","a")) tb1 tb2 <- data.frame(key=c("a&quo
tb1 <- data.frame(var1 = c(1,3,8,4,2), "var2"=c(-1.1,3.3,4.2,2.3,-3.2), key=c("a","c","b","c","a"))
tb1
tb2 <- data.frame(key=c("a","b","c"),var3=c("Ada","Byron","Cleopatra"))
tb2
(2)方法产生一个错误
错误:联接列必须是唯一的。位置4和5的x问题。
两者都是字符向量。我理解错了什么?这两个变量并不相等:它使用的是名为
key
的列,而不是框架外部名为key
的变量by=
需要列名,而不是列值。我建议您阅读和。出现“unique”错误的原因是internal\u join
可能要做的第一件事之一是通过=至少两种方式验证参数:(1)它们是否存在于两个帧中;(2)它们是独一无二的吗?(不是按那个顺序,很可能是以{tidyselect}
的方式)如果第二个示例没有重复的元素,那么您会收到一个稍微好一点的错误:error:Join列必须出现在数据中。
,表示by
列必须是。。。列名:-)
(1)
key= c("a","c","b","c","a")
inner_join(tb1,tb2,by="key")
(2)
inner_join(tb1,tb2,by=c("a","c","b","c","a"))