我找不到这个问题的解决方案/答案,所以问你们:-)
我有以下合并挑战,如以下示例所示:如何在不混淆R的顺序的情况下,将另一列的对应值添加到另一列的对应行下(每个值,不能进行排序)?我无法对列进行排序,值是任意的。这只是使系统清晰的示例。
之前的数据框:
column1 column2
valueColumn1row1 valueColumn2row1
valueColumn1row2 valueColumn2row2
. .
. .
. .
之后的数据帧:
finalcolumn
valueColumn1row1
valueColumn2row1
valueColumn1row2
valueColumn2row2
.
.
.
有什么建议吗?预先感谢!
答案 0 :(得分:0)
一种方法是使用matrix[matrix]
子设置:
# create example data
df <- data.frame(
col1 = letters[1:6],
col2 = letters[21:26],
stringsAsFactors = F
)
# convert data to a matrix
dfm <- as.matrix(df)
# create a subsetting-matrix of the elements that you want, in the order that you want
j <- ncol(dfm)
sub <- matrix(c(rep(1:nrow(df), each=j), rep(1:j, nrow(df))), ncol=2)
# create the desired column
dfm[sub]
示例数据
> df
col1 col2
1 a u
2 b v
3 c w
4 d x
5 e y
6 f z
结果
> data.frame(dfm[sub])
dfm.sub.
1 a
2 u
3 b
4 v
5 c
6 w
7 d
8 x
9 e
10 y
11 f
12 z