【问题标题】:R leaves out columns when using read.csv [duplicate]R在使用read.csv时遗漏了列[重复]
【发布时间】:2017-08-19 16:17:37
【问题描述】:

我有一个大的逗号分隔文件,看起来像这样:

LS_trap_10c,7C000000395C1641,trap10c_7C000000395C1641_150809.csv,c,5/30/2015,1800,25
LS_trap_10c,7C000000395C1641,trap10c_7C000000395C1641_150809.csv,c,5/30/2015,2000,24.5
LS_trap_10c,7C000000395C1641,trap10c_7C000000395C1641_150809.csv,c,5/30/2015,2200,24.5
LS_trap_10c,7C000000395C1641,trap10c_7C000000395C1641_150809.csv,c,5/31/2015,000,24
LS_trap_10c,7C000000395C1641,trap10c_7C000000395C1641_150809.csv,c,5/31/2015,200,23.5
LS_trap_10c,7C000000395C1641,trap10c_7C000000395C1641_150809.csv,c,5/31/2015,400,23.5,97
LS_trap_10c,7C000000395C1641,trap10c_7C000000395C1641_150809.csv,c,5/31/2015,600,23.5,98.5

如您所见,数据各不相同(底部的两个实例有一个额外的列)并且并非所有列都包含值。此数据在 excel 中正确显示,但是当我尝试在 RStudio 中打开它时:

my_trap_dat = read.csv("path_to_file/la_selva_log.csv",(header = FALSE))

它不包含所有数据——它遗漏了最后一列——所以我有 7 列而不是显示所有数据所需的 8 列。当您将最后一列中的数据加载到 R 中时,它们似乎刚刚从集合中删除。

我找到this

数据列的数量是通过查看前五个来确定的 输入行(如果少于五行,则为整个输入),或 从 col.names 的长度(如果已指定且更长)。

但我不确定如何实施任何可以解决我的问题的更改。

如何才能让我的所有数据都保存在 R 中?

【问题讨论】:

  • 为每列提供数据标题,然后将标题设置为 true。或者对数据进行排序,使列数最多的行位于顶部。
  • 我猜这来自实验室仪器,所以除了给出的答案之外,考虑 (1) 查看仪器软件是否有任何用于 CSV 导出的配置选项,以及 (2) 让供应商知道他们导出的 CSV 无效。
  • 感谢您的提示-我实际上无法访问设备本身,只能访问我们试图理解的存档数据文件。而且他们导出的 csv 非常糟糕,除此之外还有很多原因。

标签: r csv


【解决方案1】:

StackOverflow 上已经回答了这个问题:

  1. How can you read a CSV file in R with different number of columns
  2. Read a text file with variable number of columns to a list

我相信您可以使用搜索找到更多关于堆栈溢出的信息。

快速示例(假设您导出的 CSV 无效):

my_file = file("path_to_file/la_selva_log.csv")
my_data = strsplit(readLines(my_file), ",")
close(my_file)

【讨论】:

  • 如有重复,请留言附链接,避免回复。
  • 感谢您的建议。
猜你喜欢
  • 1970-01-01
  • 2014-01-07
  • 1970-01-01
  • 2016-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多