【发布时间】:2015-05-22 02:46:35
【问题描述】:
所以我有一个数据集,只需查看它,数据集中就有明显的 NA。
> dput(bmi.cig)
structure(list(MSI.subset.BMI = structure(c(4L, 4L, 4L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 1L, 2L, 3L, 3L, 1L, 3L, 3L, 1L, 4L, 4L,
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("0", "1", "2",
"NA"), class = "factor"), MSI.subset.Cigarette = structure(c(3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 2L, 2L, 1L, 2L, 1L, 2L,
2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L), .Label = c("1",
"2", "NA"), class = "factor")), .Names = c("MSI.subset.BMI",
"MSI.subset.Cigarette"), row.names = c(NA, 30L), class = "data.frame")
> head(bmi.cig)
MSI.subset.BMI MSI.subset.Cigarette
1 NA NA
2 NA NA
3 NA NA
4 NA NA
5 NA NA
6 NA NA
我想删除任一列中包含 NA 的任何行,因此我在 ForImp 包中使用列表删除函数 ld。但是,R 没有识别 NA 值。
is.na(bmi.cig$MSI.subset.BMI)
我明白了
> is.na(bmi.cig$MSI.subset.BMI)
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[26] FALSE FALSE FALSE FALSE FALSE
所以一旦我使用ld 函数,我只会得到一个空数据集作为回报。
【问题讨论】:
-
列中的值不是
NA而是"NA"字符串。见levels( bmi.cig$MSI.subset.BMI)。 -
好的。如何将它们从“NA”字符串更改为 NA?我的目标只是使用 ld 函数并执行列表删除。
标签: r