我有一个包含大约150000行的数据框的向量。
该向量的值为“M”或“F”或NA。
所以当我要求等级时,我得到了这个:
Levels(cards$MaritialStatus)
[1] "M" "S"
我想缩放(标准化)该向量。因此,我需要将NA值更改为“未知”单词,然后我可以自己进行标准化。
我做的是:
cards$MaritalStatus[is.na(x = cards$MaritalStatus)] <- "unknown"
我得到的是:
Warning message:
In `[<-.factor`(`*tmp*`, is.na(x = cards$MaritalStatus), value = c(1L, :
invalid factor level, NA generated
然而,我的数据框架没有任何变化,我仍然可以看到NA值,当我要求该向量的级别时,我仍然只是“M”和“S”。
我忘记了什么?
答案 0 :(得分:2)
试试这个:
levels(cards$MaritalStatus)<-c(levels(cards$MaritalStatus),"unknown")
cards$MaritalStatus[is.na(cards$MaritalStatus)] <- "unknown"
答案 1 :(得分:0)
试试这个解决方案:
cards <- data.frame(MaritalStatus=c("M","M","S","S",NA,"M","M",NA,"S","S"))
cards$MaritalStatus <- addNA(cards$MaritalStatus)
levels(cards$MaritalStatus)