Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
两种等效的内部联接方式,但其中一种会产生错误(R)_R_Inner Join - Fatal编程技术网

两种等效的内部联接方式,但其中一种会产生错误(R)

两种等效的内部联接方式,但其中一种会产生错误(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

在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","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"))