【发布时间】:2015-03-20 13:55:12
【问题描述】:
我创建了一个示例数据框来帮助说明我的问题。想象一下这个设置,但是有很多行和列。现在看起来像这样:
> row1 <- rep(LETTERS[1:3], each=5)
> row2 <- sample(1:100, 15)
> df <- data.frame(row1,row2)
> t(df)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15]
row1 "A" "A" "A" "A" "A" "B" "B" "B" "B" "B" "C" "C" "C" "C" "C"
row2 "33" "56" "44" "70" " 2" "15" "34" " 3" "24" "21" "68" "88" "27" "79" "31"
我需要让它看起来像:
> t(df2)
[,1] [,2] [,3] [,4] [,5]
row1 "A" "A" "A" "A" "A"
row2 "33" "56" "44" "70" " 2"
row3 "B" "B" "B" "B" "B"
row4 "15" "34" " 3" "24" "21"
row5 "C" "C" "C" "C" "C"
row6 "68" "88" "27" "79" "31"
基本上,有一组具有唯一四个代码标识符(示例中的字母)的行标题。我尝试使用来自 dplyr 的不同“选择”调用以及 R 原生的“子集”调用。
任何能指引我正确方向的帮助将不胜感激。非常感谢。
【问题讨论】:
-
我的尝试始于看到 df[,1:5] 隔离了“A”。我想如果我可以每 5 列子集,然后我可以将它们全部绑定到一个数据帧。我用 (1:5, 6:10,...) 创建了一个向量。然后尝试了一个 for 循环: for (i in vector) {df[,i]} 看看我是否可以隔离所有这些。它没有用。
-
是否有意转换为矩阵?我的意思是,你为什么需要使用
t? -
它最终将被添加到一个更大的数据集中,使用 LETTER, NUMBER 布局,而不是其他方式。是的,我不得不强制它回到数据框做更多的操作。问题解决了!