如何删除数据框中的标头?

use*_*764 9 r header dataframe

我想从我拥有的数据框中删除标题.我从csv文件中读取数据然后我将其转置,但它创建了一个新的标题,它是文件的名称和数据来自文件的行.

以下是数据帧df的示例:

     a.csv.1   a.csv.2   a.csv.3   ...
  x        5         6         1   ...
  y        2         3         2   ...  
Run Code Online (Sandbox Code Playgroud)

我想删除a.csv.n行,但是当我尝试df <- df[-1,]删除行x而不是顶部时.

Hen*_*rik 10

如果你真的,真的,真的,不喜欢列名,你可以将你的数据框转换为矩阵(保持可能的不同变量的强制class),然后删除dimnames.

dd <- data.frame(x1 = 1:5, x2 = 11:15)
mm1 <- as.matrix(dd)
mm2 <- matrix(mm1, ncol = ncol(dd), dimnames = NULL)
Run Code Online (Sandbox Code Playgroud)

我在这里也添加了我之前的评论
?data.frame::"列名应该是非空的,尝试使用空名称将得到不支持的结果."


Kar*_* W. 6

将名称设置为NULL

names(df) <- NULL
Run Code Online (Sandbox Code Playgroud)

您也可以使用该header选项read.csv


Met*_*ics 5

您可以使用names(df)来更改标题或列名称的名称。如果 newnames 是一个名称列表 as newname<-list("col1","col2","col3"),那么names(df)<-newname会给你一个 col 名称为 col1 col2 col3 的数据。

正如@Henrik 所说,col 名称不应为空。设置names(df)<-NULL将在列名中给出 NA。

如果您的数据是 csv 文件,并且如果您使用 header=TRUE 读取 R 中的数据,则数据将具有与 csv 文件相同的列名,但如果您设置 header=FALSE,R 会将列名分配为 V1,V2,。 ..并且您在原始 csv 文件中的列名显示为第一行。

anydata.csv  
      a b c  d
    1 1 2 3 13
    2 2 3 1 21

read.csv("anydata.csv",header=TRUE)
      a b c  d
    1 1 2 3 13
    2 2 3 1 21

read.csv("anydata.csv",header=FALSE)

  V1 V2 V3 V4
1  a  b  c  d
2  1  2  3 13
3  2  3  1 21
Run Code Online (Sandbox Code Playgroud)

  • `?data.frame`:“列名应该是非空的,尝试使用空名会得到不支持的结果。”。 (6认同)