[討論] 每行抓取特定值
[問題類型]:
想針對每行判別是否有包含某特定值
[軟體熟悉度]:
使用者(已經有用R 做過不少作品)
[問題敘述]:
資料格式如下:
ID D1 D2 D3 D4....D50
A 123 23 ......... 55
B 24 005
C 504 . . 002
D 002 . . .
. . . ...
H . . 002 ...
. . . ...
XX 410 . ...
============================
CODE1<-有指定某些數字一
CODE2<-有指定某些數字二
.
.
.
CODE15<-有指定某些數字十五
這是醫院資料,
每個人若最多有50個診斷欄位(D1-->D50),
而CODE1...CODE15是每個疾病的指定疾病碼,
想要判斷每個人是否有罹患這些疾病。
EX:
假設CODE1=002(中風(stroke)疾病碼),
我就會去判斷每個診斷欄位中(D1-->D50)是否有002這個疾病碼,
ID=C,在D4中有抓到中風碼
ID=D,在D1中有抓到中風碼
ID=H,在D3中有抓到中風碼
希望輸出結果為
ID stroke ....
A 0
B 0
C 1
D 1
. .
. .
H 1
. .
XX .
[你的答案]:
目前自己的想法是將這15個指定的疾病放在list,再用apply去做判斷。是可以執行的。
只是想了解各個高手們會以怎樣的思考方式或不同的函數作運算?
藉由每個人的思考方式,好像更能刺激自己的想法。
disease<-list(
CODE1=c(002)
.
.
CODE15=c(23,555,467..)
)
disease_yes<-function(x,code){
rowname <- which(x%in%code)
return(rowname)
}
sub_data1<-data.frame(data1[,1]) #第一欄是ID
for(i in 1:length(disease)){
sub_data1[,i+1]<-0
rowname<-sort(unique(unlist(apply(data1,2,FUN=disease_yes,code=disease[[i]]))))
sub_data1[rowname,i+1]<-1
colnames(sub_data1)[i+1]<-names(disease)[i]
}
[關鍵字]:
apply
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.125.94
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1437371866.A.956.html
→
07/20 14:02, , 1F
07/20 14:02, 1F
討論串 (同標題文章)
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章