r - 如何仅删除一列中的 NA 数据?

标签 r

我有一个看起来像这样的文件:

date       A  B
2014-01-01 2  3
2014-01-02 5  NA
2014-01-03 NA NA
2014-01-04 7  11

如果我使用 newdata <- na.omit(data)哪里data上表是通过R加载的,那么我只得到两个数据点。我明白了,因为它会过滤 NA 的所有实例。我想做的是过滤每个AB以便我获得 A 的三个数据点并且只有两个 B .显然,我的主要数据集比这大得多,而且数字不同,但两者都无关紧要。

我怎样才能做到这一点?

最佳答案

使用 is.na()在您希望查找和索引的相关数据向量上使用否定结果。例如:

R> data[!is.na(data$A), ]
        date A  B
1 2014-01-01 2  3
2 2014-01-02 5 NA
4 2014-01-04 7 11
R> data[!is.na(data$B), ]
        date A  B
1 2014-01-01 2  3
4 2014-01-04 7 11
is.na()返回 TRUE对于 NA 的每个元素和 FALSE除此以外。为了索引数据框的行,我们可以使用这个逻辑向量,但我们想要它的相反。因此我们使用 !暗示相反( TRUE 变成 FALSE,反之亦然)。

您可以通过为 , 后面的列添加索引来限制返回的列。在 [ , ] ,例如
R> data[!is.na(data$A), 1:2]
        date A
1 2014-01-01 2
2 2014-01-02 5
4 2014-01-04 7

关于r - 如何仅删除一列中的 NA 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20977972/

相关文章:

r - 平滑时间序列数据而不平滑 R 中的峰值

r - R中的分数响应回归

r - 应用与功能的单独应用不同

R - 如何让 glmnet 选择 lambda,同时在插入符号中提供 alpha 范围?

R 相当于 Java 映射

r - 在小节上方注释值(ggplot多面)

r - 将 R 中的高度从英尺 (6-1) 转换为英寸 (73)

r - 按函数加权平均

r - GA包的ga功能实现

r - BTYD(买到死)。演练。 pnbd.EstimateParameters()