r - 从数据框中提取向量
问题描述
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 并拆分为向量,现在我需要相应地提取吗?
解决方案
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 )