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_Dataframe_Merge_Match - Fatal编程技术网

R:在定义列中将数据帧与分号分隔的值合并/匹配

R:在定义列中将数据帧与分号分隔的值合并/匹配,r,dataframe,merge,match,R,Dataframe,Merge,Match,如果这个问题过于简单,请道歉,但我仍然是R的一名临时初学者。我上过一些入门课程。我知道基本情况。我可以很好地阅读它,但我仍然发现自己迷路了 我的问题是: 我有两个数据帧,看起来像这样 Table1 <- data.frame("Name"=c("aaa","bbb-2; bbb", "ddd", "eee", "fff-2; fff"), "Values1"= c(2, 0.5, 0.1, 3, 4)) Table2 <- data.frame ("Name"=c("aaa", "

如果这个问题过于简单,请道歉,但我仍然是R的一名临时初学者。我上过一些入门课程。我知道基本情况。我可以很好地阅读它,但我仍然发现自己迷路了

我的问题是: 我有两个数据帧,看起来像这样

Table1 <- data.frame("Name"=c("aaa","bbb-2; bbb", "ddd", "eee", "fff-2; fff"),
"Values1"= c(2, 0.5, 0.1, 3, 4))

Table2 <- data.frame ("Name"=c("aaa", "ccc", "bbb; ddd", "fff"),
"Values2"= c(5, 2, 1, NA), "Values3"= c(4, NA, 1, NA))

Table1我们可以做一个
sub
来删除这些子字符串

Table1$Name <- sub("-\\d+", "", Table1$Name)

好的,我想现在可以了,但是如果在将来的数据中,我将得到表1中的名称,当它们有“-2”加法时,它们不仅用分号分隔,而且是不同的名称呢?(即“bbb;ccc”而不是“bbb-2;bbb”)@fat2mad它只会触及那些你有
bbc-2
的情况。@fat2mad如果是这样的话,你将如何决定
Table2
的哪个值应该分配给
Table1
?@akrun你的代码并没有完全满足他的要求。如果分号分隔的值中有一个匹配,他想将表2中的值添加到表1中。我们可以用一个临时的strsplit来做吗?@Leo P.:(1)这是个好问题。我不知道它是否真的适用于我的特殊情况,但据我所知,在类似的数据集中,条目是按优先级排序的。第一个条目是前导条目,(2)我想可以将条目分成两行进行匹配,只要结果中的数据不重复。
merge(Table1, Table2, by = "Name", all.x = TRUE)