问题标签 [na]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 用最接近的值替换 R 中的 NA
我正在寻找类似于包na.locf()
中的东西zoo
,但不是总是使用以前的非NA
值,而是我想使用最接近的非NA
值。一些示例数据:
替换NA
为na.locf
(3 结转):
并na.locf
设置fromLast
为TRUE
(5 向后进行):
但我希望使用最接近的非NA
值。在我的示例中,这意味着 3 应该向前结转到第一个NA
,而 5 应该倒退到第二个NA
:
我编写了一个解决方案,但想确保我没有重新发明轮子。有什么东西已经漂浮了吗?
仅供参考,我当前的代码如下。也许如果不出意外,有人可以建议如何提高效率。我觉得我缺少一种明显的改进方法:
要回答以下 smci 的问题:
- 不,任何条目都可以是 NA
- 如果都是 NA,请保持原样
- 不,我当前的解决方案默认为左手最近的值,但这没关系
- 这些行通常是几十万个元素,所以理论上上限是几十万。实际上,这里和那里不会超过几个,通常是一个。
更新所以事实证明,我们完全朝着不同的方向前进,但这仍然是一个有趣的讨论。谢谢大家!
r - zoo包出错,数据太长?
我想生成一个具有指定 bin 宽度的运行平均值的新列,为此我使用了 zoo 包(rollmean 函数)。我的数据表由 100 万行组成,该函数适用于前 500,000 行,之后是所有的 NA,有什么想法我可能做错了吗?
我会很感激你能给我的任何帮助,我已经坚持了太久了。提前致谢。
r - 来自 RandomForest 的 R 意外 NA 输出
我正在使用一个有很多 NA 的数据集。我知道前 6 列没有任何 NA。由于第一列是 ID 列,因此我将其省略。
我运行以下代码以仅选择在响应列中具有值的行:
然后,我使用以下代码将 sub1 用作 randomForest 中的数据集:
然后我运行这段代码来检查 NA 的输出:
如果输入的数据是干净的,我无法弄清楚为什么我会得到 NA。
有什么建议么?
r - 在使用 R 进行 PCA 分析之前省略 NA 和数据插补
我正在尝试使用princomp
R 中的函数进行 PCA 分析。
以下是示例代码:
我试图NA
从数据集中删除 ,但它不起作用。
即使我可以删除NA
's,它也可能无济于事,因为每一行或每一列都至少有一个缺失值。是否有任何 R 方法可以估算数据进行 PCA 分析?
更新:根据答案:
这有效,但默认值na.action
不起作用。
是否有任何方法可以估算数据,因为在实际数据中,我几乎每列都缺少值?这种NA
遗漏的结果会给我〜0行或列。
r - 是否可以不在数据框中显示 NA?
我正在尝试创建一个 data.frame,其中某些单元格缺少值。我想知道是否有任何方法可以隐藏 NA,而不是显示 NA?我想要的基本上就像一个方差分析表,如下所示。
输出如上。如果您尝试访问这些空白单元格,您将获得 NA
提前致谢!!
r - 根据行中的 NA 在数据框中选择列
假设我有一个 7 列的数据框,其中一些行有 7 个值,而另一些行的 NA 超过了某个点。我想获取不是 NA 的最后一个值(从左到右),然后直接获取左侧的值。它是分层数据,但有些组比其他组更深入。我想要新数据框中两列中最深和第二深的组。
这段代码有效,但会最大限度地利用我对 46K 观察数据帧的记忆。有没有我没有想到的更有效的方法?
第一次发帖。通常我可以从这个站点拼凑出我需要的东西。提前致谢。
r - 根据数据框中其他列的测试将 NA 设置为列
我有一个包含 48 列的大型数据框,我想在数据框的每一行上运行一个函数,从而将通过函数给出的测试的列设置为 NA。该测试涉及从另一个数据帧中获取一个数字。adply 很适合这个,但是我很难让它给我想要的结果。
让我解释一下:
这是我要操作的数据框的示例:
这是从中派生测试的小数据框:
整个想法是将NA分配给比大数据框中列出的实际深度更深的Cells数据点(即在第3行,深度为0.3但有两个数据点对应于Cell2,位于0.4 m 深度,因此这些都是错误的。我想 NA 这些)。
我想编写一个函数,它一次接收一行,并且:1)获取仪器深度 2)获取列名列表 3)获取比仪器深度更深的单元格索引 4)获取名称这些单元格(即 Cell1、Cell2、Cell4 等)5)使用正则表达式在列名列表中查找具有相应单元格的列(即 Cell1_avgdir、Cell1_avgvel 等)6)使用这些索引,设置那些列值到 NA。
这是我到目前为止所拥有的:
不幸的是,这并没有像我想象的那样做,我现在正试图找出原因。
它给了我这个:
当我想要的是:
希望我已经充分解释了我的问题。感谢任何可以:1)修复我已经开始的东西,或者 2)告诉我一个更好的方法来做到这一点,我不知道。
-SH
r - 返回相同的 DF 或向量而不是 NULL
用户,
我的结果中有 NULL 的 data.frames,但我不希望它们为 NULL。我希望它们与开始时相同(不变)。我正在处理一个文件列表,我的代码的目的是用我的其他 data.frames 中的数据填充所有 NA (根据最佳相关系数)。这是一个小例子:
想象一下这是我的 3 个输入数据帧(每个 10 行):
这里的目的是,例如,如果 ST1 中有 NA,则 ST1 必须填充来自与 ST1 最佳相关文件的数据(在本例中介于 ST2 和 ST3 之间)。
由于 ST3 这里没有数据,所以我不能有任何相关系数。所以 ST3 中的 NA 无法填充,ST3 也不能用于填充另一个文件。因此,如果您愿意,ST3 没有用。尽管如此,我想在我的所有代码中保持 ST3 不变。所以我的代码中的问题来自没有数据的data.frames,所以只有NA。
目前我的代码会给出这个“refill”(我的代码结束)(在我的data.frames中填充NA):
但实际上,我想要“补充”这个结果:
因此,对于只有 NA 的 data.frame,我不希望它们在“refill”中为 NULL,但我希望它们与输入中的相同。我需要它在输入和输出之间具有相同尺寸的 data.frames。如果它们为 NULL(目前是这样,但我不明白为什么,我想更改它),则此 data.frame 中将有 0 行,而不是像其他 data.frames 那样有 10 行。
所以我认为函数“process.all”或“na.fill”或“lst”中的代码有问题。
这是我的代码,它是一个可重现的示例,您可以理解我的错误(您将在head(refill)
ST2 中看到设置为 NULL)。对不起,如果它有点长,但我的错误取决于以前使用的其他功能。希望您了解我的问题以及我正在尝试做的事情。谢谢你的帮助!
(有关信息,在函数“process.all”和“na.fill”中:x 是我要填充的 data.frame,y 是将用于填充 x 的文件(因此与 x 的最佳相关文件) )。
杰弗里
r - R中线性模型的系数和摘要的不同NA动作
在 R 中,当使用 时lm()
,如果我na.action = na.pass
在对 的调用中设置lm()
,那么在汇总表中,对于任何无法估计的系数都有一个 NA(因为在这种情况下缺少单元格)。
但是,如果我使用summary(myModel)$coefficients
或仅从汇总对象中提取系数coef(summary(myModel))
,则省略 NA。
我希望在提取系数时包含 NA,就像在打印摘要时包含它们一样。有没有办法做到这一点?
设置options(na.action = na.pass)
似乎没有帮助。
这是一个例子:
r - R 因子值变化
我正在尝试在 R 中进行一些数据操作。我有 2 个数据框,一个是训练数据,另一个是测试数据,所有数据都是分类数据并存储为因子变量。
数据中有一些 NA,我正在尝试将它们转换为“-1”。当我为训练数据做这件事时,一切都很好,但对测试数据却不是。
在我运行的循环中有些东西会改变值,但我不知道是什么。
这是之前的:
这是循环:
后面是这样的:
我已经看到使用字符-> 数字转换时上移了一个,但我无法弄清楚为什么会发生这种情况,尤其是对于其中一个数据帧/循环。
有什么建议么?