【发布时间】:2016-05-03 16:07:49
【问题描述】:
我尝试使用 plyr 包中的 rbind.fill 函数将两个数据帧与列 A 组合在一起,该列仅包含第一个数据帧中的数字,但(也)包含第二个数据帧中的字符串.可重现的例子:
data1 <- data.frame(A=c(11111,22222,33333), b=c(4444,444,44444), c=c(5555,66666,7777))
data2 <- data.frame(A=c(1234,"ss150",123456), c=c(888,777,666))
rbind.fill(data1,data2)
这产生了下面的输出,其中 A 列第 4、5、6 行中的数据不正确。它没有产生错误消息。
A b c
1 107778 33434 6
2 1756756 4 7
3 2324234 5 8
4 2 NA 14562
5 3 NA 45613
6 1 NA 14
我曾预计该函数会将整个列强制转换为字符类,或者至少显示 NA 或警告。相反,它插入了我不理解的数字(在实际文件中,这些是未排序的两位数字)。 documentation 未指定待合并的data.frames 中的列必须为相同类型。
我怎样才能得到这个组合?
A b c
1 11111 4444 5555
2 22222 444 66666
3 33333 44444 7777
4 1234 NA 888
5 ss150 NA 777
6 123456 NA 666
【问题讨论】: