在R中重命名变量名称。

时间:2018-09-20 16:47:14

标签: r warnings data-cleaning

我想用“低脂”代替“ 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

1 个答案:

答案 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列的特定原因)