R 合并类型因子的两列

R 合并类型因子的两列,r,dataframe,merge,R,Dataframe,Merge,我想将两个长度不同的列组合在一个列中,并使用唯一的因子,示例如下: list1 <- as.factor(c('1a','2r','6t')) list2 <- as.factor(c('1a','5p','3g','2341','7','2r')) 我试过rbind和data.frame,但它们似乎不能很好地处理不同长度的列。关于as.factor(唯一的(c(as.character(list1),as.character(list2)))?使用union在基R中: data.

我想将两个长度不同的列组合在一个列中,并使用
唯一的
因子,示例如下:

list1 <- as.factor(c('1a','2r','6t'))
list2 <- as.factor(c('1a','5p','3g','2341','7','2r'))

我试过
rbind
data.frame
,但它们似乎不能很好地处理不同长度的列。

关于
as.factor(唯一的(c(as.character(list1),as.character(list2)))

使用
union
在基R中:

data.frame(newlist=union(levels(list1), levels(list2)))

#  newlist
#1      1a
#2      2r
#3      6t
#4    2341
#5      3g
#6      5p
#7       7

谢谢你的回答,效果很好,但我只有一个问题
newlist
char
但是
str(data.frame(…)
为什么是
因子呢?
data.frame
是否将值视为因子?@Y.Z.如果希望
newlist
视为
character
,只需使用
stringsafactors=FALSE
。也就是说,
data.frame(newlist=union(levels(list1),levels(list2)),stringsAsFactors=FALSE)
@,谢谢,有什么方法我只能保留两个列表之间的差异。例如,将结果转到
newlist Use
setdiff
而不是
union
。您可能希望通过单击向上/向下投票图标下方的复选标记来接受我的答案。
data.frame(newlist=union(levels(list1), levels(list2)))

#  newlist
#1      1a
#2      2r
#3      6t
#4    2341
#5      3g
#6      5p
#7       7