首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >read.table row.names & col.names错误

read.table row.names & col.names错误
EN

Stack Overflow用户
提问于 2014-02-15 03:04:44
回答 2查看 4.2K关注 0票数 1

这很烦人,我不能理解出什么问题了?

这是我的.csv文件:

代码语言:javascript
复制
            D102-A1 D102-A2
A1BG        0.32    0.39
A1BG-AS1    0.08    0.14

实际外观:

;D102-A1;D102-A2

A1BG;0.32;0.39

A1BG-AS1;0.08;0.14

这是我的代码:

代码语言:javascript
复制
x <- read.table(file = "file.csv", sep = ";", header = TRUE, col.names = 1)

这会产生以下错误:

列数多于列名此外:警告消息: header和'col.names‘的长度不同

第一行是左上角的空单元格,这不应该是页眉吗?当我有一个标题的时候,为什么我不能将第一列设置为row.names?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2014-02-15 05:16:16

我不确定,因为我从未使用过R,但我查看了一个手册页面http://cran.r-project.org/doc/manuals/R-intro.html#The-read_002etable_0028_0029-function,它建议如果没有行标签,则所有数据列都需要列标题。

您是否尝试过:

代码语言:javascript
复制
read.table(file = "file.csv", sep = ";")

然后再看一下结果?

这使我认为您需要在不使用colnames选项的情况下进行测试

为了直接读取整个数据帧,外部文件通常具有特殊的格式。

文件的第一行应该有数据框中每个变量的名称。

文件的每一行都有一个行标签和每个变量的值作为它的第一项。

我想指出的是,注释表明,如果第一列上没有列名,程序将很难解释数据。如果没有列标题,数据将如何命名?

票数 1
EN

Stack Overflow用户

发布于 2014-02-15 07:51:24

?read.table中,可选参数col.names是列名的向量。因此,通过指定col.names = 1,您就意味着只有一个名为1的列。

要解决此问题,可以删除col.names参数

代码语言:javascript
复制
test1 <- ";D102-A1;D102-A2
A1BG;0.32;0.39
A1BG-AS1;0.08;0.14"
tf <- tempfile()
writeLines(test1, tf)

x <- read.table(tf, sep=";", header=TRUE)

但是,在第一个“X”中留下了一个单元格作为列名。如果这是可以接受的,那么您可以继续使用它;但如果不是这样,您的数据可能需要再次熔化或修改,但为了给您提供建议,我们需要知道您希望生成的数据帧。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21787518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档