收集不起作用,但融化将数据转换为长形式

时间:2017-12-27 13:36:35

标签: r

我有

形式的数据
           menthlth    avedrnk2     alcday5
menthlth 1.00000000  0.07997551  0.03524646
avedrnk2 0.07997551  1.00000000 -0.02859211
alcday5  0.03524646 -0.02859211  1.00000000

我使用reshape2中的melt并以下列格式获取数据:

> melt(corr)
      Var1     Var2       value
1 menthlth menthlth  1.00000000
2 avedrnk2 menthlth  0.07997551
3  alcday5 menthlth  0.03524646
4 menthlth avedrnk2  0.07997551
5 avedrnk2 avedrnk2  1.00000000
6  alcday5 avedrnk2 -0.02859211
7 menthlth  alcday5  0.03524646
8 avedrnk2  alcday5 -0.02859211
9  alcday5  alcday5  1.00000000

但是当我使用聚集时,会出现以下错误:

> corr %>% gather(Var1,Var2,convert = TRUE)
Error in UseMethod("gather_") : 
  no applicable method for 'gather_' applied to an object of class "c('matrix', 'double', 'numeric')"

1 个答案:

答案 0 :(得分:1)

我们可以转换为data.frame或tibble,然后执行gather

library(tidyverse)
m1 %>%
  as.data.frame  %>% 
  rownames_to_column(., 'Var1') %>% 
  gather(Var2, value, -Var1, convert = TRUE)