在r中改变数据框的列的类型?

问题描述 投票:0回答:1

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

任何帮助将是非常感激的

r dataframe converters
1个回答
1
投票

我们可以使用 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"       
© www.soinside.com 2019 - 2024. All rights reserved.