gpt4 book ai didi

r - for循环的无效因子水平

转载 作者:行者123 更新时间:2023-12-02 00:04:12 25 4
gpt4 key购买 nike

拜托,我无法解决下一个问题:

 str(state_table)

chr [1:54] "AK" "AL" "AR" "AZ" "CA" "CO" "CT" "DC" "DE" "FL" ...

z <- data.frame(stringsAsFactors=FALSE)

for (i in state_table){z <- rbind(z, c(i))}

此代码返回:

 invalid factor level, NA generated

In `[<-.factor`(`*tmp*`, ri, value = "AL") :

最佳答案

> rbind(z, "AL")
X.AL.
1 AL
> str(z)
'data.frame': 0 obs. of 0 variables
> str(rbind(z, "AL"))
'data.frame': 1 obs. of 1 variable:
$ X.AL.: Factor w/ 1 level "AL": 1

因此,在添加第一项之后,第一列是一个具有一个级别的因子,您将无法再进行 rbind,因为输入将不在级别集中。如果您在 options 中将 stringsAsFactors 设置为 FALSE(或者如果您更小心地设置 datafreame 作为具有字符列而不是使用默认值),它应该可以工作。

> options(stringsAsFactors=FALSE)
> z <- data.frame()
> str(rbind(z, "AL"))
'data.frame': 1 obs. of 1 variable:
$ X.AL.: chr "AL"

> for (i in state.abb){z <- rbind(z, c(i))}
> str(z)
'data.frame': 50 obs. of 1 variable:
$ X.AL.: chr "AL" "AK" "AZ" "AR" ...

关于r - for循环的无效因子水平,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19466865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com