gpt4 book ai didi

r - rbind 到数据框的无效因子级别

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

我是 R 的新手,我不知道如何在数据框中添加行。
我添加两个向量:

b=c("one","lala",1)
d=c("two","lele",2)

我想将此添加到名为 a 的 data.frame 中。
a<-rbind(a,b)

现在我有一个正确的行
      A       B      C
1 one lala 1

接下来我补充
a<-rbind(a,d)

结果是:
      A       B       C
1 one lala 1
2 NA NA NA

和控制台给我写警告信息:无效因子水平,NA 生成。
我做错了什么或者什么是添加新行的更好的简单方法。
但我不想开始创建完整的 data.frame。我想添加线条。

最佳答案

当你做

c("one","lala",1)

这将创建一个字符串向量。 1转换为字符类型,
这样向量中​​的所有元素都是相同的类型。

然后 rbind(a,b)将尝试结合 a这是一个数据框和 b这是一个字符向量,这不是你想要的。

这样做的方法是使用 rbind与数据框对象。
a <- NULL
b <- data.frame(A="one", B="lala", C=1)
d <- data.frame(A="two", B="lele", C=2)

a <- rbind(a, b)
a <- rbind(a, d)

现在我们可以看到数据框中的列 a是正确的类型。
> lapply(a, class)
$A
[1] "factor"

$B
[1] "factor"

$C
[1] "numeric"

>

请注意,创建不同数据时必须命名列
框架,否则 rbind将失败。如果你这样做
b <- data.frame("one", "lala", 1)
d <- data.frame("two", "lele", 2)

然后
> rbind(b, d)
Error in match.names(clabs, names(xi)) :
names do not match previous names

关于r - rbind 到数据框的无效因子级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25285570/

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