申请中的If语句

时间:2017-06-24 07:15:51

标签: arrays r function if-statement apply

我尝试使用apply()按行遍历数组,查看1和0列的列,然后使用a填充同一数组中的另一列如果第一列是一列则起作用,如果它是一个0则起作用。

所以它会像......

  

申请(OutComes,1,if(risk = 1){OutComes [,&#34; Age&#34;] = Function_1} else {OutComes [,&#34; Age&#34;] = Function_2})< / p>

其中OutComes是有问题的数组,而风险是决定我们使用哪个函数的变量。

目标是2个函数决定生命长度,人们属于两个类别中的一个,每个类别都有自己的功能。基于风险组,我想使用不同的函数来计算年龄,但这似乎并没有起作用。

1 个答案:

答案 0 :(得分:1)

apply()需要函数的名称;你需要在这里定义一个函数, 因为没有提供现成的功能。

示例:apply(OutComes,1,sum) - 将返回每行的总和。 向量中的输出数量与数字或行相同,因此您可以将其分配给变量,然后通过cbind添加或替换现有列的值。

apply(OutComes, 1, function(x) { 
  if (x[n] == 1) {
    Function_1 ()
  }else {
    Function_2 ()
    } ) -> new_age
# x : is the working row at the time
# n : column number for "risk" # or # if(x["risk"] ==1)
# also note == instead of = at if 
OutComes = cbind(OutComes, new_age)
#or
OutComes$Age <- new_age