【问题标题】:R - Read.csv importing incorrectly due to column names missingR - 由于缺少列名,Read.csv 导入不正确
【发布时间】:2016-12-09 21:04:19
【问题描述】:

我有一个缺少列名的 CSV 文件。 CSV 文件有 16 列,但只有 9 列有列名,其余没有。此外,没有列名的 7 列在前 8 行中也没有任何数据。

当我使用 read.csv(my_file) 时,R 会加载一个只有 9 列的数据框。它将其他 7 列放在前 9 列中的 7 列的底部,这很痛苦。有关如何解决此问题的任何想法?

最好的,

编辑:让我知道我是否应该提供我的代码/CSV 文件。起初并没有认为这是一个常见问题并且可以在没有 CSV 的情况下解决。

【问题讨论】:

  • 不确定我将如何附加 CSV,或者即使我真的可以
  • read.csv 应该开箱即用地处理这个问题,如果存在分隔逗号(即使值不存在)。如果只是几行,你不能像 a,b,c,,, 而不是 a,b,c 那样添加它们吗?
  • 我认为不存在分隔逗号,因为 sep = "," 不能解决问题。
  • 我必须以这种格式读取数百个 CSV,因此手动添加列名,即使是几列,也会很麻烦。
  • 你能通过写出列名来指定它要读入的列数吗?像这样df = read.table(file = "file", fill = TRUE, sep = ",", col.names=paste("column", 1:7, sep="_")

标签: r import


【解决方案1】:

以 csv 'tmp.csv' 为例:

a,b,c
1,2,3
4,5,6
7,8,9,10,11

然后就可以用下面的命令解析了:

read.csv('tmp.csv', col.names=letters[1:5], fill=TRUE, header=TRUE)

这会读取标题但会忽略它,将其替换为您的自定义列名。缺失值的行会自动填充 NA。

【讨论】:

  • @Canovic 很高兴它成功了。我添加了一个答案,所以它可以被关闭。
【解决方案2】:

您可以通过指定列数来读取它,如下所示:

df = read.table(file = "file", fill = TRUE, sep = ",", col.names=paste("column", 1:7, sep="_")

【讨论】:

    猜你喜欢
    • 2021-10-18
    • 1970-01-01
    • 2014-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多