簡體   English   中英

從數據框中提取向量

[英]extracting the vector from a data frame

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 package (v2.0.0) 於 2021 年 6 月 3 日創建

您可以使用lapply提取每個列表中似乎是品牌的第一個元素:

brand=lapply(usedcars, `[[`, 1)

如果你願意,你可以加入它之后:

unlist(brand)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM