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

buh*_*htz 10 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
Run Code Online (Sandbox Code Playgroud)

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

我怎么能创建这样的数据框架?我如何使用该特殊列例如描述图中的数据?

zx8*_*754 11

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

rownames(mtcars)
Run Code Online (Sandbox Code Playgroud)

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

dimnames(mtcars)
Run Code Online (Sandbox Code Playgroud)

要修改,例如第一行:

rownames(mtcars)[1] <- "myNewName"
Run Code Online (Sandbox Code Playgroud)

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

mydata <- data.frame(x = 1:5)
Run Code Online (Sandbox Code Playgroud)

然后我们可以修改它们:

rownames(mydata) <- paste0("MyName", 1:5)
Run Code Online (Sandbox Code Playgroud)

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

mydata <- data.frame(x = 1:5, row.names = paste0("MyName", 1:5))
Run Code Online (Sandbox Code Playgroud)

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

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

mydata$myNames <- rownames(mydata)
Run Code Online (Sandbox Code Playgroud)

  • **行名**?!这超出了我的 Excel 宇宙!伟大的!;) (2认同)
  • 因为通过上述操作,我们正在删除 data.frame 属性并将其转换为向量,请尝试使用 `mtcars["mpg"]`。 (2认同)
  • 只是这个简单的论点会很好。``df &lt;- cbind(new_col_name =rownames(mtcars), data.frame(mtcars, row.names= NULL)).`` 分配 `new_col_name` 将替换默认的 `rn` 列名称 (2认同)