-1

我正在尝试用另一个文本替换我之前在代码中生成的数据框的一个单元格。

for (i in 1:length(flatfileFltrd)){
  rename = paste("WEN", "\\", flatfileFltrd[i,8], sep = "")
  flatfileFltrd$fileName[i] = rename
}

返回:

In `[<-.factor`(`*tmp*`, i, value = "WEN\\UA") :
  invalid factor level, NA generated

我试图弄清楚我拥有什么类型的数据框,因为我假设问题可以追溯到那,因为它们并不相同但没有运气。is.atomic(flatfileFltrd$fileName[i]) 返回 TRUE

我该如何解决?有没有更好的方法来替换我的数据元素?

4

1 回答 1

1

发生这种情况是因为因素具有特定的允许水平。有两种方法可以解决这个问题:

  1. 首先将因子转换为字符:

flatfileFltrd$fileName <- as.character(flatfileFltrd$fileName)

  1. 将新水平添加到现有因子水平:

levels(flatfileFltrd$fileName) <- c(levels(flatfileFltrd$fileName), rename)

于 2019-01-24T01:12:02.683 回答