【问题标题】:Trying to combine 2 data.frame on R with rbind and getting a error in match.names(clabs, names(xi)) : names do not match previous names尝试将 R 上的 2 个 data.frame 与 rbind 组合并在 match.names(clabs, names(xi)) 中出现错误:名称与以前的名称不匹配
【发布时间】:2015-08-30 20:58:24
【问题描述】:

尝试将 R 上的 2 个 data.frame 与 rbind 结合起来

data.combined <- rbind(train, test.survived)

在 match.names(clabs, names(xi)) 中出现错误:名称与以前的名称不匹配

【问题讨论】:

  • 检查两个数据集的列名。它可能需要匹配 rbind 才能工作。尝试colnames(test.survived) <- colnames(train),假设两个数据集的列数相同且顺序相同。

标签: r rbind


【解决方案1】:

这个问题的解决方案是下面的代码行,同时添加一个幸存的变量

使用这个:

test.survived <- data.frame(Survived = rep("None", nrow(test)), test[,])

而不是这个:

test.survived <- data.frame(survived = rep("None", nrow(test)), test[,])

唯一的区别是幸存行的大写“S”,因为数据是以这种方式给出的

【讨论】:

    【解决方案2】:

    使用这个:

    test.survived <- data.frame(Survived= rep("None",nrow(test)),test[,])
    data.combined <- rbind(train,test.survived)
    

    train.csv 文件中的 col 名称是“Survived”,并且您已向 test.survived 添加了一个 col 名称“survived”,并且在组合这两个文件时会抛出错误,因为 col 名称不同。

    【讨论】:

      【解决方案3】:

      首先,将您的数据形式更改为矩阵形式。然后你可以使用“rbind()”函数。之后,您可以将其更改为原始形式。示例代码如下所示。

      train <-as.matrix(train) test.survived <- as.matrix(test.survived)

      data.combined <- data.frame() data.combined <- rbind(train, test.survived)

      data.combined &lt;- as.data.frame(data.combined)

      【讨论】:

        【解决方案4】:

        它表示包含所有列和所有行的完整测试数据集

        除了在火车数据中使用 Survived 之外,还应该解决问题

        【讨论】:

          【解决方案5】:

          尝试 colNames = FALSE 并完成!

          【讨论】:

          • 你的意思是data.combined &lt;- rbind(train, test.survived, colNames = FALSE)?对我不起作用。
          猜你喜欢
          • 2023-02-15
          • 2011-01-31
          • 1970-01-01
          • 1970-01-01
          • 2015-10-19
          • 2012-08-14
          • 2021-02-12
          • 2023-03-24
          • 2017-03-18
          相关资源
          最近更新 更多