我正在学习r,我遇到了一个问题,就是如何将我的数据框的第一列转换为数据集这样的类型。USArrests
.
如果我们查看头部数据集的。USArrests
:
Murder Assault UrbanPop Rape
Alabama 13.2 236 58 21.2
Alaska 10.0 263 48 44.5
Arizona 8.1 294 80 31.0
Arkansas 8.8 190 50 19.5
California 9.0 276 91 40.6
Colorado 7.9 204 78 38.7
说实话,我不知道第一列的类型喜欢。阿拉巴马州, 阿拉斯加,......如果我们用 str(USArrests)
:
'data.frame': 50 obs. of 4 variables:
$ Murder : num 13.2 10 8.1 8.8 9 7.9 3.3 5.9 15.4 17.4 ...
$ Assault : int 236 263 294 190 276 204 110 238 335 211 ...
$ UrbanPop: int 58 48 80 50 91 78 77 72 80 60 ...
$ Rape : num 21.2 44.5 31 19.5 40.6 38.7 11.1 15.8 31.9 25.8 ...
这是我的数据框架。
dat <- data.frame(
time = factor(c("Breakfast","Lunch","Dinner"), levels=c("Breakfast","Lunch","Dinner")),
total_bill = c(12.7557,14.8,17.23)
)
查看。
1 Breakfast 12.7557
2 Lunch 14.8000
3 Dinner 17.2300
我的目标是把它转换成像 USArrest
也许它看起来像这样。
total_bill
Breakfast 12.7557
Lunch 14.8000
Dinner 17.2300
任何帮助将是非常感激的
我们可以使用 column_to_rownames
从 tibble
library(tibble)
dat1 <- dat %>%
column_to_rownames('time')
dat1
# total_bill
#Breakfast 12.7557
#Lunch 14.8000
#Dinner 17.2300
在 base R
,我们也可以将任务分配给 row.names
然后将该列分配给 NULL
row.names(dat) <- dat$time
dat$time <- NULL
如果我们检查 dimnames(USArrests)
或使用 row.names
很明显,这就是行名。
row.names(USArrests)
#[1] "Alabama" "Alaska" "Arizona" "Arkansas" "California" "Colorado"
#[7] "Connecticut" "Delaware" "Florida" "Georgia" "Hawaii" "Idaho"
#[13] "Illinois" "Indiana" "Iowa" "Kansas" "Kentucky" "Louisiana"
#[19] "Maine" "Maryland" "Massachusetts" "Michigan" "Minnesota" "Mississippi"
#[25] "Missouri" "Montana" "Nebraska" "Nevada" "New Hampshire" "New Jersey"
#[31] "New Mexico" "New York" "North Carolina" "North Dakota" "Ohio" "Oklahoma"
#[37] "Oregon" "Pennsylvania" "Rhode Island" "South Carolina" "South Dakota" "Tennessee"
#[43] "Texas" "Utah" "Vermont" "Virginia" "Washington" "West Virginia"
#[49] "Wisconsin" "Wyoming"