【发布时间】:2017-06-24 19:33:05
【问题描述】:
所以我试图在一个数组上运行一个应用函数。想法是查看风险因素列中的值,如果为 1,则使用“OnsetFunction”,如果为零,则使用 HighOnsetFunction。然后将生成一列值,该列填充数组中的另一列。
> apply(OutComes, 1, function(x) { if(x["Risk_Factor"] == 1)
> + {OnsetFunction()}
> + else{ HighOnsetFunction()}})
我在使用上述应用功能时遇到问题,并不断收到此消息。
>Error in xy.coords(x, y) : 'x' and 'y' lengths differ
目前数组中只有五行,因为我试图确保代码在一个小组中工作,然后再将其扩展到很多人,但我不确定 x 和 y 是什么.我见过这个带有图表的消息,但以前从未见过。
【问题讨论】:
-
你能展示你的数组吗?
-
PersonNumber Risk_Factor OC_Death OnsetAge Clinical CS_Death Cure AC_Death [1,] 1 1 99.69098 NA NA NA NA NA [2,] 2 1 60.68009 NA NA NA NA NA [3,] 3 0 88.67483 NA NA NA NA NA [4,] 4 0 87.60846 NA NA NA NA NA [5,] 5 0 78.23118 NA NA NA NA NA
-
尝试根据第二列的值 1 或零更改第四列
-
OnsetFunction 和 HighOnsetFunction 你可以发布它们,因为没有它们就无法模拟任务......怀疑这两个函数不会处理 NA,在这种情况下你会有不同的大小,一种方法是对 NA 进行“编码”或仅用答案填充向量,因为如果您在原始数据帧中使用,则需要: 1. 删除 NA 2. 将所有 NA 编码为 0: 2 1 60.68009 0 0 0 0 0(这是基于您的示例数据)
标签: arrays r if-statement apply