【问题标题】:How to load comma separated data into R?如何将逗号分隔的数据加载到 R 中?
【发布时间】:2011-09-17 00:20:20
【问题描述】:

我有一个这样的平面文件:

   x1,   x2,   x3,   x4,   x5
0.438,0.498,3.625,3.645,5.000
2.918,5.000,2.351,2.332,2.643
1.698,1.687,1.698,1.717,1.744
0.593,0.502,0.493,0.504,0.445
0.431,0.444,0.440,0.429,1.0
0.438,0.498,3.625,3.648,5.000

如何在 R 中加载它。

我已经尝试过这样做

> x <- read.table("C:\\flatFile.txt", header=TRUE)

但是在我做了一些操作之后,我得到了类似的错误

> colSums(x)
Error in colSums(x) : 'x' must be numeric

【问题讨论】:

  • ?read.csv。我可以建议您花一些时间浏览一些通用的 R 介绍吗?我意识到cran.r-project.org/doc/manuals/R-intro.pdf 的覆盖面并不大,但是在cran.r-project.org/other-docs.html加载 各种详细程度的文档,并为各种不同的受众设计(PS,也许我应该休息一下来自 StackOverflow 的一段时间——我似乎变得脾气暴躁)
  • 对不起,我似乎没有找到正确读取数据的方法,逗号是问题......?
  • 我同意 Ben Bolker 的观点,但我想补充一点,您应该使用 ?read.table 和 ?colSums (即查阅 R 帮助文件)。无论如何,请改用 read.csv()。
  • @Ben Bolker:你忘记了明显的R Data Import/Export

标签: r load


【解决方案1】:

如果您查看read.table 上的帮助,您会发现一些本质上是read.table 具有不同默认值的额外功能。如果您倾向于阅读大量使用这些默认值最好阅读的文件,那么为了简洁起见,请使用它们而不是 read.table

此代码将读入您的文件

x <- read.table("C:\\flatFile.txt", header=TRUE, sep = ',')

或此代码

x <- read.csv("C:\\flatFile.txt")

请注意,虽然您可以像read.table 一样设置这些基于read.table 的命令的任何功能,但使用它们并重申默认设置是毫无意义的。例如,如果您还要一直设置header = TRUE 和/或sep = ',',请不要打扰read.csv。在这种情况下,您不妨使用read.table

【讨论】:

  • Read.table 是最好的,其中数据是无组织的,每列包含 2 到 3 个标签,中间用逗号分隔,但是,如果数据组织良好,那么 read.csv 是好的。
【解决方案2】:

您需要使用 colClasses 选项来读取.csv。像这样:

x <- read.csv("C:\\flatFile.txt", head=TRUE, colClasses=c("numeric","numeric","numeric","numeric"))

【讨论】:

  • ???? header=TRUE(通过部分参数匹配来解释 head=TRUE 的方式)是 read.csv 的默认值,如果列包含所有数值,则将其解释为数字。我看不出您的建议与x &lt;- read.csv("C:\\flatFile.txt") if 数据结构如上。 read.csv 是关键。
  • 我在想 R 不知何故被输入数据弄糊涂了,需要被告知输入类型是什么。
  • 我认为在这些情况下最好尝试准确了解问题所在。 R 看起来很神奇,因为它没有增加混乱...... :-)
猜你喜欢
  • 1970-01-01
  • 2019-05-09
  • 1970-01-01
  • 2013-07-12
  • 2018-07-18
  • 2019-06-27
  • 1970-01-01
  • 2011-04-19
  • 1970-01-01
相关资源
最近更新 更多