我正在尝试cbind
两个不同排序的命名数组到数据帧中。
x = c("a" = 1, "z" = 10)
y = c("z" = 10, "a" = 1)
# Expected output:
# x y
# a 1 1
# z 10 10
我已经尝试了以下内容并且都忽略了数组'姓名:
# Unexpected outputs:
cbind(x,y)
merge(as.data.frame(x),as.data.frame(y))
library(dplyr); bind_cols(as.data.frame(x),as.data.frame(y))
原则上,我知道我可以将数组转换为dataframe
然后按行名称绑定,或者我可以匹配名称并在绑定期间索引数组。
我想知道这种直接任务是否有更直接的方式。
答案 0 :(得分:1)
我想出了
x <- c("a" = 1, "z" = 10)
y <- c("z" = 10, "a" = 1)
cbind(x, "y"=y[names(x)])
> x y
>a 1 1
>z 10 10
可能不是最佳的,但也许它足以满足您的目的......