合并问题。 fix.by(by.x,x)出错:'by'必须指定唯一有效的列

时间:2017-10-22 10:14:19

标签: r merge type-conversion

伙计,

我在合并两个数据帧时遇到了问题。我有两个数据帧。对于每个数据帧,我在行/列(原始数据非常大)方面包含了有限的数据,如下所示:

 DF1
 Cost.Centre.Code       GBP
       322018    0.00000
       400629    0.00000
       400629  163.60005
       400629    0.00000
       400629   28.00001
       400629   0.00000

 DF2
       Cost.Centre.Code                  Function
       400629            Global Functions
       570001            Business Manages Services
       570002            Business Manages Services
       570003            Global Functions
       570004            Business Manages Services
       570005            OTHER

我正在尝试从DF1中获取DF2的值。我已经为DF2中的Cost.Centre.Code进行了类型转换(类和模式),以使其与DF1中的相匹配。

DF2$Cost.Centre.Code <- as.numeric(as.character(DF2$Cost.Centre.Code))
DF2 <- data.frame(lapply(DF2, factor))

现在,两个数据框中的Cost.Centre.Code都是数字,并存储为因子。

现在我尝试使用下面提到的命令合并它们:

DF3 <- merge(x = DF1, y = DF2, by.x =  'Cost.Center.Code', by.y = 'Cost.Center.Code', all.x = TRUE)

我收到错误“fix.by(by.x,x)出错:'by'必须指定唯一有效的列”。

我已经在SF上发过关于类似错误的类似帖子,但他们的问题与我的问题略有不同。任何故障排除都没有帮助我。

我不确定类型转换是否存在问题。我是R编程的新手,任何帮助将不胜感激。提前谢谢!

0 个答案:

没有答案