【发布时间】:2016-04-15 15:27:14
【问题描述】:
我有两个数组“begin”和“end_a”,它们包含一些整数索引,除了“end_a”中的一些条目是NA。
panelDataset 是一个包含数据的矩阵。我想取panelDataset对应begin和end_a的非NA条目的行。
我有这个以串行方式工作并且工作正常,但是当我尝试按如下方式对其进行矢量化时
switch_mu=ifelse(!is.na(end_a),mean(panelDataset[begin: end_a,4]),NA)
它给出一个错误:Error in begin:end_a : NA/NaN argument.
当我使用is.na(end_a) 分别检查NAs 的end_a 条目时,它确实将数组的正确条目显示为NA。所以,这不是问题。
我知道我错过了一些琐碎的事情。有什么想法吗?
【问题讨论】:
-
这里发生了一些事情。您能否分享小的说明性数据以使其可重现? Data sharing via simulation or
dput()is strongly preferred. -
您说
begin和end_a是数组,但您将它们用作标量,例如begin:end_a. -
@ErnestA 天哪!那可能是错误。我有数组
begin=c(1,2,3,4)和end_a=c(10,15,NA,16),我想取第1 到10、2 到15 和4 到16 行的平均值。事实证明cbind也不允许这种并行索引。
标签: r if-statement vectorization