首页 > 解决方案 > 从数据框中提取向量

问题描述

usedcars[1:4,16]

[[1]]
[1] "Hyundai" "Verna"   "1.6"     "SX"     

[[2]]
[1] "Hyundai" "i10"     "Era"    

[[3]]
[1] "Volkswagen"  "Polo"        "Petrol"      "Comfort-line" "1.2L"       

[[4]]
[1] "Maruti" "Wagon"  "R"      "LXI" 

我怎样才能只提取品牌

早些时候我有名称列,我在其中使用了 string_split 并拆分为向量,现在我需要相应地提取吗?

标签: r

解决方案


library(tidyverse)

usedcars <-
    list(c("Hyundai", "Verna", "1.6", "SX"),
         c("Hyundai", "i10", "Era"),
         c("Volkswagen", "Polo", "Petrol",
           "Comfortline", "1.2L" ),
         c("Maruti", "Wagon", "R", "LXI"))


#as a character vector
#equivalent to c(usedcars[[1]][[1]], usedcars[[2]][[1]], usedcars[[3]][[1]], usedcars[[4]][[1]])
map_chr(usedcars, ~.[[1]])
#> [1] "Hyundai"    "Hyundai"    "Volkswagen" "Maruti"

#or ouput as a df
map_df(usedcars,~ c(brands = .x[[1]]))
#> # A tibble: 4 x 1
#>   brands    
#>   <chr>     
#> 1 Hyundai   
#> 2 Hyundai   
#> 3 Volkswagen
#> 4 Maruti

#or finally as another list

map(usedcars, ~ `[[`(.x, 1))
#> [[1]]
#> [1] "Hyundai"
#> 
#> [[2]]
#> [1] "Hyundai"
#> 
#> [[3]]
#> [1] "Volkswagen"
#> 
#> [[4]]
#> [1] "Maruti"

reprex 包于 2021-06-03 创建 (v2.0.0 )


推荐阅读