通过保留第一列来融化数据框

时间:2020-04-29 03:30:47

标签: r dataframe dplyr

如何使data.frame看起来像下面示例中的输出:

  created_at  negative  positive
1 2020-03-06 0.8897419 0.7564513
2 2020-03-07 0.9041667 0.7989865

需要的输出:

  created_at  x         y
1 2020-03-06 negative   0.8897419 
2 2020-03-07 negative   0.9041667 
1 2020-03-06 positive   0.7564513
2 2020-03-07 positive   0.7989865

我尝试了melt函数,但是没有用。

1 个答案:

答案 0 :(得分:1)

一种流行的方法是pivot_longer中的tidyr

library(tidyr)
data %>% 
  pivot_longer(-created_at,names_to = "x",values_to = "y")
# A tibble: 4 x 3
#  created_at x            y
#* <fct>      <chr>    <dbl>
#1 2020-03-06 negative 0.890
#2 2020-03-06 positive 0.756
#3 2020-03-07 negative 0.904
#4 2020-03-07 positive 0.799