我有要被合并的名为exp和cat的数据帧。 以下是数据框:
> exp
keyword keyword2
1 SLD SLD
2 TRUNION GANTRY
3 PCON LVA
4 SLD SLD
5 GANTRY GCON
> cat
keyword category
1 PA 11-113
2 IQ 151-16
3 GCON 25-11
4 PCON 29-11
5 HVA 12-41
6 LVA 22-31
7 HCON 21-40
8 LR 2-50
9 TP 12-16
10 CID 25-66
11 HD 31
12 LLD 35-10
13 SLD 37-12
14 RTT 3-26
15 TRUNION 31-35
16 GANTRY 13-15
但是在合并这两个数据帧时,我只得到了NA。 请让我知道我哪里出错了。
这是函数及其输出:
>merge(exp,cat, by='keyword',all.x = TRUE)
keyword keyword2 Category
1 PCON LVA <NA>
2 SLD SLD <NA>
3 SLD SLD <NA>
4 TRUNION GANTRY <NA>
5 GANTRY GCON <NA>
答案 0 :(得分:0)
我无法重现您的错误。以下代码适用于我:
exp <- data.frame(keyword=c("SLD", "TRUNION", "PCON", "SLD", "GANTRY"), keyword2=c("SLD", "GANTRY", "LVA", "SLD", "GCON"))
cat <- data.frame(keyword=c("PA", "IQ", "GCON", "PCON", "HVA", "LVA", "HCON", "LR", "TP", "CID", "HD", "LLD", "SLD", "RTT", "TRUNION", "GANTRY"), category=c("11-113", "151-16", "25-11", "29-11", "12-41", "22-31", "21-40", "2-50", "12-16", "25-66", "31", "35-10", "37-12", "3-26", "31-35", "13-15"))
merge(exp, cat, all.x=TRUE, by="keyword")
keyword keyword2 category
1 GANTRY GCON 13-15
2 PCON LVA 29-11
3 SLD SLD 37-12
4 SLD SLD 37-12
5 TRUNION GANTRY 31-35
如果您使用dput()提供实际的exp
和cat
,这将有所帮助。然后我们更有可能弄清楚正在发生什么。我注意到Category
在你合并的df中是大写的,但在cat中没有,所以我怀疑你已经完成了另一个步骤(可能是无意中),你没有共享。
答案 1 :(得分:0)
如果您的exp
数据集为小写,则转换为上限并合并,
exp <- as.data.frame(sapply(exp, toupper))
merge(exp,cat, by='keyword',all.x = TRUE)
# keyword keyword2 category
#1 GANTRY GCON 13-15
#2 PCON LVA 29-11
#3 SLD SLD 37-12
#4 SLD SLD 37-12
#5 TRUNION GANTRY 31-35