我想用“低脂”代替“ LF”,这是我使用的代码:
train$Item_Fat_Content[train$Item_Fat_Content =="LF"]= "Low FAt"
执行代码时,我收到警告消息,指出:
In `[<-.factor`(`*tmp*`, train$Item_Fat_Content == "LF", value = c(3L, :
invalid factor level, NA generated
答案 0 :(得分:1)
我们可以将其转换为character
类,然后进行赋值
train$Item_Fat_Content <- as.character( train$Item_Fat_Content)
train$Item_Fat_Content[train$Item_Fat_Content =="LF"]= "Low FAt"
或者,如果我们想将class
保留为factor
,则在执行分配之前,将level
创建为“低脂肪”,然后执行分配
levels(train$Item_Fat_Content) <- c(levels(train$Item_Fat_Content), "Low FAt")
注意:如注释中的@doviod所述,在使用read.table/read.csv
读取数据时,如果我们希望将非数字列作为stringsAsFactors = FALSE
类,请使用character
(除非存在是有factor
列的特定原因)