r语言 - read.table row.names & col.names ERROR



这很烦人,我无法理解出了什么问题?

这是我.csv文件:

            D102-A1 D102-A2
A1BG        0.32    0.39
A1BG-AS1    0.08    0.14

实际外观:
;D 102-A1;D102-A2
A1BG;0.32;0.39
A1BG-AS1;0.08;0.14

这是我的代码:

x <- read.table(file = "file.csv", sep = ";", header = TRUE, col.names = 1)

这会产生以下错误:

数多于列名另外: 警告消息: 标题和"col.names"的长度不同

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

谢谢!

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

你试过吗:

read.table(file = "file.csv", sep = ";")

然后看结果?

这让我认为您需要在没有 colnames 选项的情况下进行测试

要直接读取整个数据框,外部文件通常具有特殊形式。

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

文件的每一附加行的第一项都有一个行标签和每个变量的值。

我想说的是,该注释表明,如果第一列没有列名,程序就难以解释数据。 如果没有列标题,数据将如何命名?

?read.table,可选参数col.names是列名称的向量。因此,通过指定col.names = 1,您说有一个列,它的名称为 1 .

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

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作为第一个"单元格"中的列名。如果这是可以接受的,那么你可以坚持这个;但如果不是,您的数据可能需要再次熔化或修改,但为了向您提供建议,我们需要知道您希望生成什么数据框。

最新更新