我正在處理具有不同身體部位和放射科測試作爲列的醫療保健數據。下面是數據幀的快照 -根據條件標誌將列名轉換爲行值
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