我使用的成像数据格式类似于:
name side modality
<chr> <chr> <chr>
1 alex right xray
2 alex left xray
3 brad right xray
4 brad left xray
5 alex right ct
6 alex left ct
7 brad right ct
8 alex right mri
9 brad right mri
10 brad left mri
假设每个人都应该有所有模态的左图像和右图像,则它显示Alex缺少左MRI,布拉德缺少左CT,而Charlie(他根本没有出现在data
中)的所有图像都丢失了。我正在尝试创建一个汇总表,显示哪些元素“存在”或“不存在”,给定一个names
的列表(其中包括Charlie),它看起来像这样:
name left_xray right_xray left_ct right_ct left_mri right_mri n_absent
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <dbl>
1 alex present present present present absent present 1
2 brad present present absent present present present 1
3 charlie absent absent absent absent absent absent 6
我已经使用了各种dplyr动词来获取每种模态中缺失数据的患者列表,但我真的不确定从哪里开始创建汇总表。
虚拟数据:
data <- tibble(name = c('alex', 'alex', 'brad', 'brad', 'alex', 'alex', 'brad', 'alex', 'brad', 'brad'),
side = c('right', 'left', 'right', 'left', 'right', 'left', 'right', 'right','right','left'),
modality = c('xray','xray','xray','xray','ct','ct','ct','mri','mri','mri'))
names <- tibble(name = c('alex', 'brad', 'charlie'))
谢谢大家!
4条答案
按热度按时间rkue9o1l1#
编号
输出
zdwk9cvp2#
使用当前的
full_join
以及 * 名称 、 侧 * 和 * 模态 * 的所有可能组合的方法。结果
数据
kcwpcxri3#
你试试看
bihw5rsg4#
您可以先将
side
和modality
列连接在一起,然后生成complete
列和姓名的组合,然后将此"long"格式转换为"wide"格式,并计算缺勤人数。更新
我在解决方案中添加了
full_join(tmp, by = "name")
,以适应OP的更新请求。