【发布时间】:2017-07-12 14:06:08
【问题描述】:
我有三个看起来像这样的向量:
x = c(NaN, 15, 16, 14, 14, NaN)
y = c(NaN, NaN, NaN, NaN, NaN, 11)
z = c(17, NaN, NaN, NaN, NaN, 12)
我需要将它们合并为一个向量。我需要这三个平滑地啮合在一起,并且在有重叠值的地方(如 y 和 z 中所见),应优先考虑 z 中的值。最终结果应如下所示:
xyz = c(17, 15, 16, 14, 14, 12)
我已经研究过使用 rowSums 来处理 na,但这在同一个索引上有多个值的情况下不起作用。如果可能,我会尽量避免 for 循环。
很确定我可以通过遍历向量来做到这一点,但我正在处理一个相当大的数据集。
【问题讨论】:
-
NaN到底是什么意思? -
不是数字——很确定这些来自于从 .csv 读取空单元格。它们似乎与 NA 的工作方式相同,因为我可以在 rowSums 中使用 na.rm 来操作它们,但它们打印为 NaN,所以我想我应该将它包含在内。
-
我更习惯
NA而不是NaN,但我看到它是保留字和有效值。有趣...(虽然对您的问题没有多大帮助,但恐怕):( -
最近几天做了一些挖掘——结果表明整数可以容纳 NA,但双精度数可以容纳 NA、NaN、Inf 或 -Inf——允许除法等特殊情况.我遇到了这个问题,因为我的表格数据被作为双精度向量读入。无论如何,对解决方案并不重要,但我想你可能会对为什么两者都存在感兴趣!