我有以下矩阵
data=structure(list(Metric = c("x", "y"), Result1 = c(9,
18), Result2 = c(7, 14
), Delta = c(-170, -401)), .Names = c("Metric",
"Result_1", "Result_2", "Delta"), row.names = c(NA,
-2L), class = "data.frame")
我想将其转换为1行并将列数加倍
我尝试了以下(as.vector(t(data)))
。但是,当我这样做时,它会将所有内容转换为字符,并且我会丢失数据信息
任何帮助?
答案 0 :(得分:1)
我们可以拆分数据框,然后使用bind_cols
包中的dplyr
。虽然我不确定这是你的预期输出,因为你没有提供任何例子,只是说明。
dplyr::bind_cols(split(data, data$Metric))
Metric Result_1 Result_2 Delta Metric1 Result_11 Result_21 Delta1
1 x 9 7 -170 y 18 14 -401
答案 1 :(得分:1)
在Base R
dd=stack(data)
A=dd$values
names(A)=dd$ind
data.frame(as.list(A))
Metric Metric.1 Result_1 Result_1.1 Result_2 Result_2.1 Delta Delta.1
1 x y 9 18 7 14 -170 -401