【问题标题】:Adding column names to a .dat file in R as a new row将列名作为新行添加到 R 中的 .dat 文件
【发布时间】:2020-08-29 03:12:51
【问题描述】:

我正在尝试使用 R 中作为 .dat 文件提供给我的大型数据框。不幸的是,数据文件的格式不理想,因此我遇到了问题。

我可以通过以下方式读取数据文件:

myData <- read.delim(file=here("myData.dat"))

但是,当我查看数据框时,它使用第一行数据作为标题。由于文件的格式,我无法对其进行编辑以将适当的标题直接添加到文件中。我尝试使用:

colnames(myData) = (c("Column1", "Column2", "Column3"))

除了这会替换用于列名的数据,因此实质上会删除数据集中的一行。

尝试使用:

myData <- read.delim(file=here("myData.dat"), col.names(c("Column1", "Column2", "Column3"))

导致错误“read.table(file = file, header = header, sep = sep, quote = quote, : more columns than column names”错误。

有没有办法添加一个全新的行作为列名?

旁注:我正在使用的数据是机密的,因此我无法共享它。它有大约 10,600 行数据和 50 列

【问题讨论】:

    标签: r


    【解决方案1】:

    read.delim 中标题(列名)的默认设置设置为 TRUE。因此,该函数需要第一行中的列名。您可以使用header = FALSE 启用该参数,而不是您的列名将是 V,后跟每列的编号。此外,您可以使用 col.names 参数添加自己的列名。只需确保您的列表对数据框中的每一列都有一个名称(在您的情况下为 50 个名称)。否则可能会出错。

    代码可能如下所示:

    myData <- read.delim(file=here("myData.dat"),
                         header = FALSE, 
                         col.names = c("Column1", "Column2", "Column3"))
    

    在您有 50 列的情况下,我会在自己的对象中指定名称并将该对象添加到 read.delim 函数。像这样:

    my.names <- c("Column1", "Column2", "Column3")
    
    myData <- read.delim(file=here("myData.dat"),
                         header = FALSE, 
                         col.names = my.names)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-04
      • 1970-01-01
      • 2022-01-08
      • 2015-11-27
      • 1970-01-01
      • 2023-01-07
      • 1970-01-01
      相关资源
      最近更新 更多