我有一个以下列格式提供的数据集:
Metric 1 Metric 2 Metric 1 Metric 2 Metric 1 Metric 2
4 4 4 4 4 78
4 4 4 4 4 -4
45 45 45 45 45 37
5 5 5 5 5 -3
但我希望几乎将数据转换为两列,如下所示:
Metric 1 Metric 2
4 4
4 4
45 45
5 5
4 4
4 4
45 45
5 5
4 78
4 -4
45 37
5 -3
我环顾四周,并没有找到一个我能够实现的解决方案。有人有建议吗?我知道这可能是一个简单的解决方案。
答案 0 :(得分:2)
仅供参考,最好有唯一的列名。
如果您的数据在问题中显示,您可以一次拆分2列的块,然后rbind
do.call(rbind, lapply(seq(1, NCOL(df), 2), function(i) df[,i:(i+1)]))
# Metric 1 Metric 2
#1 4 4
#2 4 4
#3 45 45
#4 5 5
#5 4 4
#6 4 4
#7 45 45
#8 5 5
#9 4 78
#10 4 -4
#11 45 37
#12 5 -3
数据强>
df = structure(list(`Metric 1` = c(4L, 4L, 45L, 5L), `Metric 2` = c(4L,
4L, 45L, 5L), `Metric 1` = c(4L, 4L, 45L, 5L), `Metric 2` = c(4L,
4L, 45L, 5L), `Metric 1` = c(4L, 4L, 45L, 5L), `Metric 2` = c(78L,
-4L, 37L, -3L)), .Names = c("Metric 1", "Metric 2", "Metric 1",
"Metric 2", "Metric 1", "Metric 2"), class = "data.frame", row.names = c(NA,
-4L))
答案 1 :(得分:0)
或者您可以使用melt
df=melt(df)
data.frame('Metric 1'=df$value[df$variable=='Metric 1'],
'Metric 2'=df$value[df$variable=='Metric 2'])
Metric.1 Metric.2
1 4 4
2 4 4
3 45 45
4 5 5
5 4 4
6 4 4
7 45 45
8 5 5
9 4 4
10 4 4
11 45 45
12 5 5