如何将不同长度的字符向量绑定到数据帧中?

时间:2019-10-16 23:24:42

标签: r

我想将循环的输出绑定到数据帧中。

输出如下:

> dput(A)
c("u1", "u52", "u190", "u151", "u127", "u131", "u83", "u49", 
"u27", "u186", "u154", "u132")
> dput(B)
c("u2", "u42", "u49", "u132", "u27", "u52", "u48", "u53", "u131", 
"u83", "u54") 

我希望将A和B绑定到一个数据帧中,A和B分为两行。但是,A和B的长度不同,我不希望R回收值。

2 个答案:

答案 0 :(得分:0)

您可以使用rbind()执行此操作:

AB <- rbind(A, B)

但是,由于A和B的长度不同,因此R开始回收。参见here

答案 1 :(得分:0)

如果不想回收,则必须添加缺失值以扩展较短的向量:

d <- length(A) - length(B)
if(d > 0) B <- c(B, rep(NA, d))
if(d < 0) A <- c(A, rep(NA, abs(d)))
(AB <- rbind(A, B))
#   [,1] [,2]  [,3]   [,4]   [,5]   [,6]   [,7]  [,8]  [,9]   [,10]  [,11]  [,12] 
# A "u1" "u52" "u190" "u151" "u127" "u131" "u83" "u49" "u27"  "u186" "u154" "u132"
# B "u2" "u42" "u49"  "u132" "u27"  "u52"  "u48" "u53" "u131" "u83"  "u54"  NA