我无法找到解决方案/这个问题的答案,因此请问你们:-)
我有以下合并挑战,如下例所示:如何在不混淆R中的顺序的情况下,在另一列的相应行下面添加一列的每个值(每个任意,不可能排序)?我无法对列进行排序,值是任意的。这只是使系统清晰的一个例子。
以前的数据帧:
column1 column2
valueColumn1row1 valueColumn2row1
valueColumn1row2 valueColumn2row2
. .
. .
. .
数据帧后:
finalcolumn
valueColumn1row1
valueColumn2row1
valueColumn1row2
valueColumn2row2
.
.
.
有什么建议?提前致谢!
一种方法是使用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