R的数据集mtcars中的第一列是什么?

时间:2016-08-17 07:23:32

标签: r dataframe rowname

我想我错过了关于R数据框架的基本概念。

head(mtcars)
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

这里的汽车名称。这是一个专栏吗?我不这么认为,因为我无法通过mtcars[,1]访问它们。并且没有列名称/标题。

我怎样才能创建这样的数据框?我怎么能使用那个特殊的列,例如例如,描绘图中的数据?

3 个答案:

答案 0 :(得分:11)

它们是行名,访问它们使用:

rownames(mtcars)

对于列名使用colnames,要查看行名和列名,我们可以使用:

dimnames(mtcars)

要修改,例如第一行:

rownames(mtcars)[1] <- "myNewName"

使用data.frame创建数据框时,行名称将分配1:n个数字。

mydata <- data.frame(x = 1:5)

然后我们可以修改它们:

rownames(mydata) <- paste0("MyName", 1:5)

或者我们可以在创建data.frame时添加rownames:

mydata <- data.frame(x = 1:5, row.names = paste0("MyName", 1:5))

注意: rownames不是很可靠,例如见this post。 (这可能是主观意见,我通过将rownames重新分配给列来避免它们)

data.table和dplyr包更喜欢没有它们。您始终可以将rownames重新分配到以下列中:

mydata$myNames <- rownames(mydata)

答案 1 :(得分:4)

一个简短的带有data.table Package的衬里参数将使rowname成为一列。

library(data.table)
setDT(mtcars, keep.rownames = TRUE[])

head(mtcars)

      rn           mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

答案 2 :(得分:2)

使用tibble也可以。

library(tibble)
mtcars %>%
  rownames_to_column(var="carnames")