我需要使用R将机场代码转换为完整的机场名称,例如Newark / Shanghai的EWR / PVG。有一个名为“ airportr”的程序包,其“ airport_lookup”功能有助于将缩写词转换为全名。
> airport_lookup("PVG", output_type = "city")
[1] "Shanghai"
但是,如果我有多个这样的条目,那么如何一次转换所有这些不同的代码。 lapply会投入使用吗?我是R的新手。如果有人可以研究这个问题,我将非常感激。
我正在提供样本数据集:
df8=data.frame("Student"= c("A", "B", "C", "D"), "Itinerary"= c("EWR/PVG", "PHL-YYZ/TPE", "GYE-BOG/MDE/JFK", "JFK/SCL"))
我希望我的结果在新栏中提供完整的代码名称,如下所示:
| Student | Itinerary | Cities |
|---------|:---------------:|---------------------------------------:|
| A | EWR/PVG | Newark/Shanghai |
| B | PHL-YYZ/TPE | Philadelphia-Toronto/Taipei |
| C | GYE-BOG/MDE/JFK | Guayaquil - Bogota/ Rio Negro/New York |
| D | JFK/SCL | New York/Santiago |
答案 0 :(得分:0)
使用R base *apply
函数
> airports <- strsplit(as.character(df8$Itinerary), "\\W")
> cities <- lapply(airports, function(x){
paste0(sapply(x, airport_lookup, output_type = "city"), collapse="-")
})
> df8$Cities <- do.call(rbind, cities)
> df8
Student Itinerary Cities
1 A EWR/PVG Newark-Shanghai
2 B PHL-YYZ/TPE Philadelphia-Toronto-Taipei
3 C GYE-BOG/MDE/JFK Guayaquil-Bogota-Rio Negro-New York
4 D JFK/SCL New York-Santiago