如何使用其他数据库中的变量在现有数据库中创建新的二进制列?

时间:2017-01-31 22:28:20

标签: r

在早期的帖子中,Benjamin和raymkchow帮助我使用自定义函数创建新的二元变量来标记诊断。

How to use custom function to create new binary variables within existing dataframe?

patient<-c("a","b","c")
diag_1<-c("8661", "2851","8651")
diag_2<-c("8651","8674","2866")
diag_3<-c("2430","3456","9089")

patient_db<-data_frame(patient,diag_1,diag_2,diag_3)

   patient  diag_1 diag_2 diag_3
1       a  8661   8651   2430
2       b  2851   8674   3456
3       c  8651   2866   9089

创建新二进制变量的功能如下所示:

 patient_db<-diagnosis_func(patient_db, "diag_1", "2851", "Anemia")

创建以下输出:

  patient  diag_1 diag_2 diag_3  Anemia
1       a  8661   8651   2430      0
2       b  2851   8674   3456      1
3       c  8651   2866   9089      0

这一次,我尝试使用类似的方法,但不是使用单一的诊断代码(&#34; 2851&#34;)和名称(&#34; Anemia&#34;),能够从名为ICD9_codes的小型数据框中读取代码和相应的名称。例如:

code<-c("2851","7840","7245")
name<-c("anemia","fever","back pain")

ICD9_codes<-data_frame(code,name)

code     name
<chr>    <chr>
2851     anemia
7840     fever
7245     back pain

使用&#34; ICD9_codes&#34;中的代码和名称列表运行下面的函数。 dataframe列导致错误。

  patient_db<-diagnosis_func(patient_db, "diag_1",ICD9_codes$code, ICD9_codes$name)

错误:

 Error in `[[<-`(`*tmp*`, i, value = value) : no such index at level 1 

1 个答案:

答案 0 :(得分:1)

尝试在 chartArea.AxisX.Minimum = 0; 次循环中运行您的函数,其中n是数据框中的代码数量n

ICD9_codes