更改 r 中数据框列的类型?

Change the type of a dataframe's column in r?

我正在学习 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 

老实说,我不知道第一列的类型,例如:AlabamaAlaska、... 如果我们使用 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_rownamestibble

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"