所以,我想从两个现有的(数字)信息生成一个新的向量,一个为参与者设置id,另一个表示观察值。每个受试者都有不同的观察时间。sapply函数(x)其中x是子集参数
现在,新的向量应该应该状态:0当obs_no = 1; 1当obs_no =该id的最后一次观察; NA之间的情况。
id obs_no new_vector
1 1 0
1 2 NA
1 3 NA
1 4 NA
1 5 1
2 1 0
2 2 1
3 1 0
3 2 NA
3 3 1
我想我可以用这样的
new_vector <- c(0, rep(NA, times=length(obs_no[id==1])-2), 1)
代码为每个ID做到这一点separatly或者我猜只是使用MAX(),但它不会有任何区别。
但是手动添加每个参与者真的很不方便,因为我有很多情况。我无法弄清楚如何制作一个通用函数。我尝试使用sapply定义函数(x),但由于x位于子集括号内,因此无法使其工作。
任何建议都会有所帮助。谢谢。
如果一个团体只有一个观察,那么任何想法应该是什么值? – akrun
噢,是的,如果只有一个观察值应该是0!如果我交换第二行和第三行的顺序,“重复”解决方案仍然有效!谢谢! – andreasgoteson
@andreasgoteson - 我已经交换了订单来解释这一点 - 现在''ave'版本应该可以工作。 – thelatemail