首页 > 解决方案 > list_to_dataframe(res, attr(.data, "split_labels"), .id, id_as_factor) 中的错误:结果的长度不相等

问题描述

 EVCars
 [1] "Tesla Model 3"             "Toyota Prius Prime"        "Tesla Model X"            
 [4] "Tesla Model S"             "Honda Clarity PHEV"        "Chevrolet Volt"           
 [7] "Chevrolet Bolt EV"         "Nissan LEAF"               "BMW 530e"                 
[10] "Ford Fusion Energi"        "Chrysler Pacifica Hybrid"  "BMW i3 (BEV + REx)"       
[13] "BMWX5 xDrive 40e"          "Mitsubishi Outlander PHEV" "Kia Niro PHEV"            
[16] "BMW 330e"                  "Audi A3 Sportback e-tron"  "Volvo XC60 PHEV"          
[19] "Fiat 500e"                 "Porsche Panamera E-Hybrid" "Mercedes C350e"           
[22] "Hyundai IONIQ PHEV"        "Mini Countryman SE PHEV"   "Volvo XC90 T8 PHEV"       
[25] "Volkswagen e-Golf"         "smart ED"                  "Kia Soul EV"              
[28] "Porsche Cayenne S-E"       "Mercedes GLE 550e"         "Kia Optima PHEV"          
[31] "Honda Clarity BEV"         "BMW i8"                    "Ford C-Max Energi"        
[34] "Mercedes GLC 350e"         "Ford Focus Electric"       "Hyundai Sonata PHEV"      
[37] "Volvo S90 T8 PHEV"         "Jaguar I-Pace"             "Hyundai IONIQ EV"         
[40] "BMW 740e"                  "Cadillac CT6 PHEV"         "Mercedes B250e"           
[43] "Mercedes S550e" 

我只想把汽车品牌放在像这样的向量中

EVCarsBrand
[1] "Tesla"       "Toyota"      "Tesla"       "Tesla"       "Honda"       "Chevrolet"   "Chevrolet"

使用此代码

require(plyr)
EVCars <- ldply(strsplit(EVCars, ' '))
EVCars$v1

收到错误:

Error in list_to_dataframe(res, attr(.data, "split_labels"), .id, id_as_factor) : 
Results do not have equal lengths

标签: r

解决方案


由于汽车品牌是每个字符串中的第一个单词:

new.vector = gsub("([A-Za-z]+).*", "\\1", EVCars)
> new.vector

推荐阅读