首页 > 解决方案 > 将多个列名复制到每行的变量中

问题描述

我有一个数据框:-

Country    Disease 1   Disease 2    Disease 3   Disease4 

A           No         No          No          Yes     
B           Yes        Yes         No          No     
C           No         Yes         No          No   
D           No         No          Yes         No  

我想做:-

Country     Disease
A           Disease4
B           Disease1
B           Disease2
C           Disease2
D           Disease3

我无法做到这一点:

New_Data_3 <- melt(New_Data2, id = c("Country"))

New_Data_2是数据框。

标签: rdataframe

解决方案


使用后,您只需再添加两个步骤即可获得所需的输出melt。代码是:

require(dplyr)
require(reshape2)

New_Data_3 = melt(New_Data_2,id=c('Country')) %>% 
  dplyr::filter(value=='Yes') %>% 
  dplyr::rename(Disease = variable) %>% 
  dplyr::select(-value)

让我知道这是否适合你。


推荐阅读