我尝试使用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个函数决定生命长度,人们属于两个类别中的一个,每个类别都有自己的功能。基于风险组,我想使用不同的函数来计算年龄,但这似乎并没有起作用。
答案 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