r - 如何收集数据框以使列成为单列
问题描述
我有这个数据:
structure(list(id = 1:6, arthritis = c(1L, 0L, 0L, 0L, 0L, 1L
), asthma = c(0L, 0L, 0L, 0L, 0L, 0L), cancer = c(0L, 0L, 0L,
0L, 0L, 0L), cerebvascdz = c(0L, 0L, 0L, 0L, 0L, 0L), chf = c(0L,
0L, 0L, 0L, 0L, 0L), crf = c(0L, 0L, 0L, 0L, 0L, 0L), copd = c(0L,
0L, 0L, 0L, 0L, 0L), depression = c(0L, 0L, 0L, 1L, 1L, 1L),
diabetes = c(0L, 0L, 0L, 0L, 0L, 0L), hyperlipid = c(1L,
0L, 1L, 0L, 1L, 0L), htn = c(1L, 0L, 1L, 1L, 0L, 1L), ihd = c(1L,
0L, 0L, 0L, 0L, 0L), obesity = c(0L, 0L, 0L, 0L, 0L, 0L),
osteoporosis = c(0L, 0L, 0L, 0L, 0L, 1L)), row.names = c(NA,
6L), class = "data.frame")
其中包含患者的 id。其余所有列都是患者可能患有的合并症,指定为布尔值。我正在尝试使用gather 方法来翻转桌子,如下所示。患者患有的每种合并症都应该在右侧填充,患者 ID 在左侧。
我很确定我应该使用收集功能,但我似乎无法让它工作。有没有人知道我应该做什么才能让帧切换到所需的格式?
解决方案
这是正确的代码
pmh %>%
gather(diagnosis,num, arthritis:osteoporosis) %>%
arrange(id) %>%
filter(num == 1)
我是 R 新手,我想我误解了 collect 的第一个论点。
推荐阅读
- ios - 如何滚动到 UICollectionView 的中心(水平和垂直)
- kotlin - 在 Kotlin/Native 中读取环境变量
- node.js - MongoDB 对象没有被删除。猫鼬
- database - 将 FK 映射到 talend 中的表中
- python - Jupyter notebook:如何持续设置matplotlib图形默认大小,即使在`from matplotlib import pyplot`之后?
- php - Codeiginter mysql将中文数据存储为问号
- jenkins - 在 Jenkins 构建中转义字符
- excel - VBA+VBS 发送密钥脚本
- php - Laravel Null 转储值
- django - 如何在 Django 1.11+ 中使用伪装