我有一些R中的數據,它包含缺少數據的特殊字符串。我想subset
原始數據幀爲有效數據和一個只有缺失數據。檢測因子級別是數字還是R中的字符串
在下面的示例中,我有一些數字值和缺少數據的兩個字符串(MD1
和MD2
)。
DF <- data.frame(x = c(1, 2, 3, "MD1", 5, "MD2"))
如果只有幾個這樣的字符串,我可以列舉出來,並提取子集(這不是我是如何做到的,但它是簡單而符合這個問題的目的):
DF.invalid <- droplevels(subset(DF, x == "MD1" | x == "MD2"))
DF.valid <- subset(DF, x != "MD1" & x != "MD2")
DF.valid$x <- as.numeric(levels(DF.valid$x))[DF.valid$x]
我的問題是,缺少的數據字符串可能不會提前知道。是否有適當的(優雅的)方法來檢測MD1
和MD2
是否爲非數字並實現此結果,而不檢查數據框並枚舉非數字級別?
做'as.numeric(levels(df $ x)[df $ x])',那些變成'NA'的是非數字的。 –