2016-12-06 2 views
-3

Patient_ID, date, ulcer_area(cm2), initial measure(yes/no)を含むデータフレームでRで作業しています。 各患者は、異なる日付でエリア(ulcer_area)の一つ以上の対策を持っている患者ごとに作成しようとして - 私デ小節の割合と初期尺度であるarea_difと呼ばれる新しい変数Rの3番目の変数で調整された変数からの計算値

area_dif = by Patien_ID (ulcer_area/(ulcer_area WHERE initial measure=yes)) 

database

+0

サンプルデータを使用する)'または 'dput()' –

答えて

0

iが( `ヘッドを使用し、mapply

df = data.frame(Patien_ID = rep(1:4,3), ulcer_area = rnorm(12,5), 
       initial = rep(c("Yes","No", "No"),4)) 
str(df) 
'data.frame': 12 obs. of 3 variables: 
$ Patien_ID : int 1 2 3 4 1 2 3 4 1 2 ... 
$ ulcer_area: num 4.48 5.27 5.38 4.63 4.45 ... 
$ initial : Factor w/ 2 levels "No","Yes": 2 1 1 2 1 1 2 1 1 2 ... 

df$area_diff <- mapply(function(i, area) { 
    area/df$ulcer_area[df$initial == 'Yes' & df$Patien_ID == i] 
    }, 
    i = df$Patien_ID, area = df$ulcer_area) 

str(df) 
'data.frame': 12 obs. of 4 variables: 
$ Patien_ID : int 1 2 3 4 1 2 3 4 1 2 ... 
$ ulcer_area: num 4.48 5.27 5.38 4.63 4.45 ... 
$ initial : Factor w/ 2 levels "No","Yes": 2 1 1 2 1 1 2 1 1 2 ... 
$ area_diff : num 1 1.246 0.933 1 0.992 ... 
関連する問題