我正在处理具有不同身体部位和放射科测试作为列的医疗保健数据。下面是数据帧的快照 -根据条件标志将列名转换为行值
loc_brain loc_bone loc_pelvis mod_ct mod_xray
0 1 1 0 1
1 1 0 1 0
0 0 1 1 1
所有起始用“LOC”标志的身体部位中的列。同样,列开始与“国防部”标志的放射试验
的想法是创建两个新列名为位置和方式应遵循以下输出模式
loc_brain loc_bone loc_pelvis mod_ct mod_xray location modality 0 1 1 0 1 bone pelvis xray 1 1 1 1 1 brain bone pelvis ct xray 0 0 1 1 1 pelvis ct xray
如果“LOC “列标记为1,则新位置列将具有正文部分的名称。同样适用于“mod”列。
我接近这个问题的方式是使用dplyr并查看每个组合标志并填充位置和模态值。
input_df$location<-""
input_df$modality<-""
input_df <- input_df %>%
mutate(location= replace(location,(loc_bone==1 & loc_pelvis==1),"bone pelvis")) %>%
mutate(modality= replace(modality,mod_xray==1, "xray"))
- 还有约300万行和身体部位,并测试65列。
- 找到所有的组合和变异每个组合是凌乱的。有没有办法使用dplyr或base R来自动化这种方法?
下面是输入数据帧的再现的例子 -
loc_brain<-c(0,1,0)
loc_bone<-c(1,1,0)
loc_pelvis<-c(1,0,1)
mod_ct<-c(0,1,1)
mod_xray<-c(1,0,1)
input_df<-as.data.frame(cbind(loc_brain,loc_bone,loc_pelvis,mod_ct,mod_xray))
这个作品但需要一些时间来处理数据。 – x1carbon