gpt4 book ai didi

R 中的 rbind() 函数在合并的数据帧中生成 NA

转载 作者:行者123 更新时间:2023-12-02 09:37:12 24 4
gpt4 key购买 nike

我需要一些有关 R 中 rbind 函数的帮助。我有以下 2 个数据帧。

df1

        col1    col2    col3
row1 0 1 0
row2 txt1 txt2 txt3
row3 txtA txtB txtC
row4 51 93 83

df2

        col1    col2    col3
row5 0.732 0.345 0.532
row6 0.453 0.123 0.456
row7 0.656 0.987 0.321
row8 0.432 0.030 0.754

我想合并这两个数据帧,所以我使用 rbind 函数来获取以下内容:

        col1    col2    col3
row1 0 1 0
row2 txt1 txt2 txt3
row3 txtA txtB txtC
row4 51 93 83
row5 0.732 0.345 0.532
row6 0.453 0.123 0.456
row7 0.656 0.987 0.321
row8 0.432 0.030 0.754

但是,这不是我得到的。当我使用合并 <- rbind(df1,df2),我明白

    col1    col2    col3
row1 0 1 0
row2 txt1 txt2 txt3
row3 txtA txtB txtC
row4 51 93 83
row5 <NA> <NA> <NA>
row6 <NA> <NA> <NA>
row7 <NA> <NA> <NA>
row8 <NA> <NA> <NA>

因此,当我合并这 2 个数据帧时,我得到 df2 的 NA 值。有人能帮我解决这个问题吗?

提前致谢!

最佳答案

问题是一个数据帧只有数值,而另一个数据帧没有。

这里有一个解决方法:

> data.frame(t(data.frame(t(df1), t(df2))))
col1 col2 col3
row1 0 1 0
row2 txt1 txt2 txt3
row3 txtA txtB txtC
row4 51 93 83
row5 0.732 0.345 0.532
row6 0.453 0.123 0.456
row7 0.656 0.987 0.321
row8 0.432 0.030 0.754

我不确定您如何读取数据,但您可以查看 stringsAsFactors 参数,例如 read.tabledata.frame。如果将 stringsAsFactors 设置为 FALSE 您可以使用rbind。

为了使您的示例可重现:

> df1 = read.table(header=T, stringsAsFactors=F, text='        col1    col2    col3
+ row1 0 1 0
+ row2 txt1 txt2 txt3
+ row3 txtA txtB txtC
+ row4 51 93 83')

> df2 = read.table(header=T, text=' col1 col2 col3
+ row5 0.732 0.345 0.532
+ row6 0.453 0.123 0.456
+ row7 0.656 0.987 0.321
+ row8 0.432 0.030 0.754')

> rbind(df1, df2)
col1 col2 col3
row1 0 1 0
row2 txt1 txt2 txt3
row3 txtA txtB txtC
row4 51 93 83
row5 0.732 0.345 0.532
row6 0.453 0.123 0.456
row7 0.656 0.987 0.321
row8 0.432 0.03 0.754

关于R 中的 rbind() 函数在合并的数据帧中生成 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24367558/

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