【发布时间】:2013-04-01 10:09:52
【问题描述】:
我有一个看起来像这样的数据框:
ID Time U1 U2 U3 U4 ...
1 20 1 2 3 5 ..
2 20 2 5 9 4 ..
3 20 2 5 6 4 ..
.
.
And I would need to keep it like:
ID Time U
1 20 1
1 20 2
1 20 3
1 20 5
2 20 2
2 20 5
2 20 9
2 20 4
3 20 2
3 20 5
3 20 6
3 20 4
我试过了:
X <- read.table("mydata.txt", header=TRUE, sep=",")
X_D <- as.data.frame(X)
X_new <- stack(X_D, select = -c(ID, Time))
但我还没有设法将数据放入该表格中。老实说,我在堆叠/转置方面经验不足,因此非常感谢您的帮助!
【问题讨论】:
-
这通常称为从宽格式到长格式的转换。但是,按照您定义它的方式,您会丢失有关数据来自哪一列的信息。顺便说一句,包
reshape2涵盖了这种转换。 -
此外,如果您为回答者提供一种非常简单的方法将示例数据导入 R 以使用,您更有可能获得您真正想要的答案。提供文件中的内容并不简单,而是提供原始示例数据框对象 IS 的
dput()输出! -
还有
tidyr::gather()的解决方案 -
@Phil - 你能列举出来吗?我正在寻找与 JMP“堆栈列”平台等效的 tidyr。