子集数据框中的特定行,但保留观察结果
Subset specific rows in a dataframe, but keeping the observations
我有一个看起来像这样的数据框
y = data.frame(subdel = c(1, 2, 3, 1, 57, 14, 1, 2, 57, 57, 57, 3, 1, 1,
31, 21, 34, 56, 12, 45, 1, 63, 31, 34), muni = c("A01", "A83", "A40", NA, NA, NA, NA, NA, NA, NA, NA, "A45", "B26", "B42","B61", "B70", "B90", "C53", "C89","A45", "B26", "B42","B61", "B70"))
我期待下一个结果:
z = data.frame(subdel = c(1, 2, 3, 57, 57, 57, 57, 3, 1, 1, 31, 21, 34, 56, 12, 45, 1, 63, 31, 34), muni = c("A01", "A83", "A40", NA, NA, NA, NA, "A45", "B26", "B42","B61", "B70", "B90", "C53", "C89", "A45", "B26", "B42","B61", "B70"))
我想将 subdel == 57
与 muni == NA
匹配,但是,如您所见,保留数据框中的所有其他观察值。
如有任何帮助,我们将不胜感激。
我们可以在逻辑条件下使用 subset
,即检查 'muni' (is.na(muni)
) 和 (&
) 中的 NA
,其中 'subdel' 是 57 (subdel == 57
) 或来自 'muni' (!is.na(muni)
)
的所有其他非 NA 元素
subset(y, is.na(muni) & subdel == 57 | !is.na(muni))
我有一个看起来像这样的数据框
y = data.frame(subdel = c(1, 2, 3, 1, 57, 14, 1, 2, 57, 57, 57, 3, 1, 1,
31, 21, 34, 56, 12, 45, 1, 63, 31, 34), muni = c("A01", "A83", "A40", NA, NA, NA, NA, NA, NA, NA, NA, "A45", "B26", "B42","B61", "B70", "B90", "C53", "C89","A45", "B26", "B42","B61", "B70"))
我期待下一个结果:
z = data.frame(subdel = c(1, 2, 3, 57, 57, 57, 57, 3, 1, 1, 31, 21, 34, 56, 12, 45, 1, 63, 31, 34), muni = c("A01", "A83", "A40", NA, NA, NA, NA, "A45", "B26", "B42","B61", "B70", "B90", "C53", "C89", "A45", "B26", "B42","B61", "B70"))
我想将 subdel == 57
与 muni == NA
匹配,但是,如您所见,保留数据框中的所有其他观察值。
如有任何帮助,我们将不胜感激。
我们可以在逻辑条件下使用 subset
,即检查 'muni' (is.na(muni)
) 和 (&
) 中的 NA
,其中 'subdel' 是 57 (subdel == 57
) 或来自 'muni' (!is.na(muni)
)
subset(y, is.na(muni) & subdel == 57 | !is.na(muni))