导入txt文件,但昏暗只有1

时间:2014-03-30 10:05:44

标签: r

我想导入一个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

2 个答案:

答案 0 :(得分:2)

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

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

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

*参数是您为函数提供的变量,用于指定其行为方式。在以下示例中,sep =&#34;,&#34;或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

答案 1 :(得分:0)

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

示例:

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

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