我有一个非常直接的问题,花了几个小时的时间仍然苦恼不已,所以我想请你帮忙。我正在寻找一种简单的方法来返回只包含某个原始向量的最后一个元素的向量。
这是我的原始向量 'a':
a<-c(0,0,1,0,0,1,0,0,1,0)
我希望生成向量“b”,其长度与“a”相同,并仅携带其最后一个非缺失元素。换句话说,
b = (0,0,0,0,0,0,0,0,1,0)
我可以通过构建一个循环,从向量'a'的末尾向其第一个元素反向运行来实现这一点,但这似乎并不优雅。我相信有更好的方法。
如果有人感兴趣,更大的问题是:我试图改变一个向量中与另一个向量的最后一个非缺失元素对应的值。
非常感谢任何帮助。
replace(0*a, which.max(cumsum(a)), 1)
。直觉上,我认为任何使用which
的东西都会很慢,因为输出长度事先不知道。但是cumsum
和which.max
不是这种情况。 - flodel