我有两个数组“begin”和“end_a”,它们包含一些整数索引,但“end_a”中的某些条目是NA
。
而panelDataset
是一个包含数据的矩阵。我想采用对应于begin和end_a的非NA条目的panelDataset
行的方法。
我这是以串行方式工作,它工作正常,但当我尝试按如下方式对其进行矢量化时
switch_mu=ifelse(!is.na(end_a),mean(panelDataset[begin: end_a,4]),NA)
它出错:Error in begin:end_a : NA/NaN argument.
当我使用NA
分别检查end_a的条目is.na(end_a)
时,它确实会将数组的正确条目显示为NA
。所以,这不是问题。
我知道我错过了一些微不足道的事情。有什么想法吗?
答案 0 :(得分:1)
试试这个:
means <- apply(na.omit(cbind(begin, end_a)), 1,
function(x) mean(panelDataset[x[1]:x[2], 4]))
replace(end_a, !is.na(end_a), means)