如何按列

时间:2016-07-13 08:48:35

标签: arrays r dataframe

我正在尝试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然后按行名称绑定,或者我可以匹配名称并在绑定期间索引数组。

我想知道这种直接任务是否有更直接的方式。

1 个答案:

答案 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

可能不是最佳的,但也许它足以满足您的目的......