如何重塑这样的数据框架:
x1 x2 x3 x4
1 1 5 6
1 2 3 5
2 1 6 1
2 2 2 4
为:
x1 1
x1 1
x1 2
x1 2
x2 1
.
.
.
我看了很多帖子(比如this one),但我无法弄明白。
答案 0 :(得分:2)
使用stack
stack(df)
values ind
1 1 x1
2 1 x1
3 2 x1
4 2 x1
5 1 x2
6 2 x2
7 1 x2
8 2 x2
9 5 x3
10 3 x3
11 6 x3
12 2 x3
13 6 x4
14 5 x4
15 1 x4
16 4 x4
对于情节
df$ind=as.character(df$ind)
boxplot(values~ind,data=df)
答案 1 :(得分:1)
假设您还拥有ID列,使用melt()
命令可能是最佳解决方案。请查看此link以获取进一步说明。
newdf <- reshape2::melt(df, id="id").
如果您还没有ID,则可以将rownames设为ID列,然后再将其删除。
df$id <- rownames(df)
newdf <- melt(df, id="id").
newdf$id <- NULL
另外,在评论中提出更多问题但在控制台中运行?boxplot()
这是一个不好的形式,它应该相当简单。