【问题标题】:Import txt file but dim is only 1导入txt文件但dim只有1
【发布时间】:2014-05-09 16:14:15
【问题描述】:

我想导入一个 txt 文件,所以我在 R 中做了以下操作:

breast <- read.table("breastdata.txt",header=F)

但是当我检查它的维度时,我得到 569 1。所以它的行为就像它有一个列,而有多个列。如何在 R 中分隔这些列?

这是我的数据的样子:
“诊断”“半径”“纹理”“周长”“面积”“平滑度”“紧凑性”“凹度”“凹点”“对称性”“分形维数”
"842302" "M" 17.99 10.38 122.8 1001 0.1184 0.2776 0.3001 0.1471 0.2419 0.07871
"842517" "M" 20.57 17.77 132.9 1326 0.08474 0.07864 0.0869 0.07017 0.1812 0.05667

【问题讨论】:

  • 能否举例说明文本文件中数据的结构?是逗号分隔的吗?选项卡?

标签: r


【解决方案1】:

您很可能需要指定适当的分隔符。

使用文本编辑器打开文本文件并识别分隔符(指定每行中的下一列的字符),之后您将能够:

  • 使用具有此分隔符的包装函数,以及分配的其他常用参数*。
  • 自己指定参数。

* 参数是您提供给函数的变量,用于指定函数的行为方式。在以下示例中,sep="," 或 header=FALSE 是参数示例。

手动设置参数的方式:

#Columns separated by a ","
read.table("breastdata.txt",header=FALSE,
         sep=",")  

#Columns separated by a ";"
read.table("breastdata.txt",header=FALSE,
         sep=";")

或者,您可以使用自动设置 read.table 的某些参数的包装函数之一来减少您的一些工作:

# Common European format: "," as the decimal point, ";" as the column separator;
read.csv2("breastdata.txt",header=FALSE)     # Which would be (almost) equal to read.table("breastdata.txt",header=FALSE,sep=",")

# Common US format: "." as the decimal point, "," as the column separator;
read.csv("breastdata.txt",header=FALSE)    

这些基本上调用 read.table 并覆盖默认参数,读取 ?read.table 以查看您可以手动设置的所有参数或查看存在哪些包装器。

编辑: 将数据复制到文本文件并指定空格分隔符是否有效?

dt = read.table("test.txt",header=TRUE,sep=" ")
dt
           Diagnosis radius texture perimeter area smoothness compactness concavity     concave.points symmetry fractal.dimension
842302         M  17.99   10.38     122.8 1001    0.11840     0.27760    0.3001        0.14710   0.2419           0.07871
842517         M  20.57   17.77     132.9 1326    0.08474     0.07864    0.0869        0.07017   0.1812           0.05667

【讨论】:

  • 没有分隔符,只是中间有一点间隔。所以我尝试了:sep=""。但后来我得到一个错误..
  • 能否将前几行复制到问题中?
  • @Silke 你提供的数据没有给我报错,所有行都完整吗?如果不尝试将 fill=TRUE 添加到 data.table 以使用 NA 填充空值。
  • 谢谢!我没看到,但这正是问题所在。
【解决方案2】:

您可能需要设置 dec=","dec="." 以使 R 解析十进制数字,您在数据集上拥有原样。也可以尝试设置header=TRUE 看看会发生什么。

例子:

#Decimal separation
read.table("breastdata.txt",header=TRUE,
         dec=".")  

尝试编辑您的问题,正确构建您的数据,以便我们清楚地了解它,然后发布您遇到的错误,反映所提出的建议等。

【讨论】:

    猜你喜欢
    • 2011-11-18
    • 2014-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-11
    • 2021-02-26
    • 2015-05-04
    相关资源
    最近更新 更多