无效因子级别,在r中的数据帧中粘贴时生成的NA

时间:2014-06-27 09:00:11

标签: r

我无法使用rbind将正确的数据粘贴到数据框中。这是问题

Results <- dataframe()

值将存储符合选择标准的医院名称,y [1,2]是州名称

以下是我尝试将结果传递到空白数据帧结果时得到的结果。

class(results)
[1] "data.frame"
value
[1] "JOHN C LINCOLN DEER VALLEY HOSPITAL"
y[1,2]
[1] "AZ"
class(value)
[1] "character"
class(y[1,2])
[1] "character"
results <- rbind(results,as.list(c(value,y[1,2])))
Warning messages:
1: In `[<-.factor`(`*tmp*`, ri, value = "JOHN C LINCOLN DEER VALLEY HOSPITAL") :
  invalid factor level, NA generated
2: In `[<-.factor`(`*tmp*`, ri, value = "AZ") :
  invalid factor level, NA generated
results
  X.ARKANSAS.METHODIST.MEDICAL.CENTER. X.AR.
1    ARKANSAS METHODIST MEDICAL CENTER    AR
2                                 <NA>  <NA>
3                                 <NA>  <NA>

如何解决这个问题? 非常感谢

1 个答案:

答案 0 :(得分:9)

当你想要一个角色时,你有一个因素。在数据框上执行str()以识别作为因子的列,然后假设您的data.frame被称为Mydf而因子列是第3列和第5列

Mydf[,c(3,5)] <- sapply(Mydf[,c(3,5)],as.character)