R 中是否有一个函数可以让我创建一个新列,其中包含 (1) 完整的国家名称和 (2) 各自的大陆?
Is there a function in R that lets me create a new column with (1) the full country names and (2) the respective continent?
在我的数据集中,我只给出了国家代码。我设法获得了完整的国家/地区名称,但是由于某种原因,我无法创建包含完整国家/地区名称的新列,因此无法创建包含相应大洲的新列。
这就是我到目前为止所做的:
mycodes <- c("PRT", "FRA", "JPN", "IRL", "ESP", "BEL", "AUT", "DEU", "ITA", "CHN", "RUS", "POL", "USA", "CRI", "CHE", "ROU", "GBR",
"BRA", "FIN", "NLD", "CAN", "ZAF", "AUS", "AGO", "BGR", "SWE", "CYP", "ARG", "ARM", "CHL", "MOZ", "KOR", "TUN", "DNK", "GRC",
"NOR", "ISR", "MYS", "EGy", "JOR", "LUX", "TUR", "IRN", "LBY", "PAN", "COL", "VEN", "DZA", "GNB", "MAR", "CZE", "SVN", "IND",
"HUN", "NZL", "PER", "LTU", "TWN", "SRB", "EST", "KAZ", "KWT", "IDN", "UKR", "MEX", "SVK", "SAU", "ARE", "BGD", "THA", "TZA",
"LVA", "PHL", "BIH", "BHR", "NAM", "BOL", "HRV", "SGP", "CMR", "MLT", "URY", "PAK", "JAM", "ECU", "SYC", "QAT", "PRY", "BRB",
"OMN", "TMP", "ABW", "LBN", "SLV", "DMA", "CUB", "VNM", "GEO", "IRQ", "PYF", "UGA", "LIE", "SEN", "BLR", "ISL", "DOM",
"GUY", "LCA", "CPV", "ATA", "GAB", "NGA", "RWA", "CIV", "ALB", "MKD", "MNE", "GTM", "GHA", "MDV", "MCO", "MUS", "TGO", "LKA",
"AZE", "SUR", "KEN", "MRT", "HKG", "SYR", "CAF", "NCL", "UZB", "KIR", "SDN", "PRI", "ATF", "KNA", "TJK", "SLE", "LAO", "COM",
"ETH", "FRO", "AND", "BEN", "ZWE", "ASM", "MLI", "BWA", "AIA", "COD", "SPM", "JEY", "MDG", "NIC", "SWZ", "CYM", "SOM", "ATG",
"KGZ", "FLK", "GIB", "SMR", "TKM", "HTI", "UMI", "MMR", "WSM", "VIR", "ERI", "WLF", "GUF", "MWI", "PCN", "TCD")
countrycode(mycodes, "iso3c", "country.name")
x <- c(countrycode)
mutate(NEWHotelCustomers, Nationality_Customers = countrycode(mycodes, "iso3c", "country.name"))
View(NEWHotelCustomers)
这是我收到的错误信息:
Error in `mutate()`:
! Problem while computing `Nationality_Customers = countrycode(mycodes, "iso3c", "country.name")`.
x `Nationality_Customers` must be size 58248 or 1, not 176.
Run `rlang::last_error()` to see where the error occurred.
Warning message:
Problem while computing `Nationality_Customers = countrycode(mycodes, "iso3c", "country.name")`.
i Some values were not matched unambiguously: TMP
提前致谢!
首先,从 mycodes-vector 创建一个 tibble/dataframe,这样你就可以将它送入 dplyr 管道。在 dplyr::mutate()
调用中使用 countrycode::countrycode()
函数附加包含国家名称和相应大陆的新变量:
library(countrycode)
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
mycodes <- c("PRT", "FRA", "JPN", "IRL", "ESP", "BEL", "AUT", "DEU", "ITA", "CHN", "RUS", "POL", "USA", "CRI", "CHE",
"ROU", "GBR", "BRA", "FIN", "NLD", "CAN", "ZAF", "AUS", "AGO", "BGR", "SWE", "CYP", "ARG", "ARM", "CHL",
"MOZ", "KOR", "TUN", "DNK", "GRC", "NOR", "ISR", "MYS", "EGy", "JOR", "LUX", "TUR", "IRN", "LBY", "PAN",
"COL", "VEN", "DZA", "GNB", "MAR", "CZE", "SVN", "IND", "HUN", "NZL", "PER", "LTU", "TWN", "SRB", "EST",
"KAZ", "KWT", "IDN", "UKR", "MEX", "SVK", "SAU", "ARE", "BGD", "THA", "TZA", "LVA", "PHL", "BIH", "BHR",
"NAM", "BOL", "HRV", "SGP", "CMR", "MLT", "URY", "PAK", "JAM", "ECU", "SYC", "QAT", "PRY", "BRB", "OMN",
"TMP", "ABW", "LBN", "SLV", "DMA", "CUB", "VNM", "GEO", "IRQ", "PYF", "UGA", "LIE", "SEN", "BLR", "ISL",
"DOM", "GUY", "LCA", "CPV", "ATA", "GAB", "NGA", "RWA", "CIV", "ALB", "MKD", "MNE", "GTM", "GHA", "MDV",
"MCO", "MUS", "TGO", "LKA", "AZE", "SUR", "KEN", "MRT", "HKG", "SYR", "CAF", "NCL", "UZB", "KIR", "SDN",
"PRI", "ATF", "KNA", "TJK", "SLE", "LAO", "COM", "ETH", "FRO", "AND", "BEN", "ZWE", "ASM", "MLI", "BWA",
"AIA", "COD", "SPM", "JEY", "MDG", "NIC", "SWZ", "CYM", "SOM", "ATG", "KGZ", "FLK", "GIB", "SMR", "TKM",
"HTI", "UMI", "MMR", "WSM", "VIR", "ERI", "WLF", "GUF", "MWI", "PCN", "TCD")
df <- tibble(codes = mycodes)
df <- df %>%
mutate(countryname = countrycode(mycodes, "iso3c", "country.name"),
continent = countrycode(mycodes, "iso3c", "continent") )
#> Warning in countrycode_convert(sourcevar = sourcevar, origin = origin, destination = dest, : Some values were not matched unambiguously: TMP
#> Warning in countrycode_convert(sourcevar = sourcevar, origin = origin, destination = dest, : Some values were not matched unambiguously: ATA, ATF, TMP, UMI
head(df)
#> # A tibble: 6 x 3
#> codes countryname continent
#> <chr> <chr> <chr>
#> 1 PRT Portugal Europe
#> 2 FRA France Europe
#> 3 JPN Japan Asia
#> 4 IRL Ireland Europe
#> 5 ESP Spain Europe
#> 6 BEL Belgium Europe
由 reprex package (v0.3.0)
创建于 2022-05-26
你在找
library(countrycode)
df <- data.frame(country_code = mycodes,
country_name = countrycode(sourcevar = mycodes, origin = "iso3c",
destination = "country.name"),
continent = countrycode(sourcevar = mycodes, origin = "iso3c",
destination = "continent"))
head(df)
?
请注意,countrycode()
无法明确识别所有字符串“iso3c”(国家/地区代码)。查看警告以确定哪个
#> Warning in countrycode_convert(sourcevar = sourcevar, origin = origin, destination = dest, : Some values were not matched unambiguously: TMP
#> Warning in countrycode_convert(sourcevar = sourcevar, origin = origin, destination = dest, : Some values were not matched unambiguously: ATA, ATF, TMP, UMI
顺便说一句,我认为这里没有必要使用 {dplyr}
。
数据
mycodes <- c("PRT", "FRA", "JPN", "IRL", "ESP", "BEL", "AUT", "DEU", "ITA", "CHN", "RUS", "POL", "USA", "CRI", "CHE", "ROU", "GBR",
"BRA", "FIN", "NLD", "CAN", "ZAF", "AUS", "AGO", "BGR", "SWE", "CYP", "ARG", "ARM", "CHL", "MOZ", "KOR", "TUN", "DNK", "GRC",
"NOR", "ISR", "MYS", "EGy", "JOR", "LUX", "TUR", "IRN", "LBY", "PAN", "COL", "VEN", "DZA", "GNB", "MAR", "CZE", "SVN", "IND",
"HUN", "NZL", "PER", "LTU", "TWN", "SRB", "EST", "KAZ", "KWT", "IDN", "UKR", "MEX", "SVK", "SAU", "ARE", "BGD", "THA", "TZA",
"LVA", "PHL", "BIH", "BHR", "NAM", "BOL", "HRV", "SGP", "CMR", "MLT", "URY", "PAK", "JAM", "ECU", "SYC", "QAT", "PRY", "BRB",
"OMN", "TMP", "ABW", "LBN", "SLV", "DMA", "CUB", "VNM", "GEO", "IRQ", "PYF", "UGA", "LIE", "SEN", "BLR", "ISL", "DOM",
"GUY", "LCA", "CPV", "ATA", "GAB", "NGA", "RWA", "CIV", "ALB", "MKD", "MNE", "GTM", "GHA", "MDV", "MCO", "MUS", "TGO", "LKA",
"AZE", "SUR", "KEN", "MRT", "HKG", "SYR", "CAF", "NCL", "UZB", "KIR", "SDN", "PRI", "ATF", "KNA", "TJK", "SLE", "LAO", "COM",
"ETH", "FRO", "AND", "BEN", "ZWE", "ASM", "MLI", "BWA", "AIA", "COD", "SPM", "JEY", "MDG", "NIC", "SWZ", "CYM", "SOM", "ATG",
"KGZ", "FLK", "GIB", "SMR", "TKM", "HTI", "UMI", "MMR", "WSM", "VIR", "ERI", "WLF", "GUF", "MWI", "PCN", "TCD")
在我的数据集中,我只给出了国家代码。我设法获得了完整的国家/地区名称,但是由于某种原因,我无法创建包含完整国家/地区名称的新列,因此无法创建包含相应大洲的新列。
这就是我到目前为止所做的:
mycodes <- c("PRT", "FRA", "JPN", "IRL", "ESP", "BEL", "AUT", "DEU", "ITA", "CHN", "RUS", "POL", "USA", "CRI", "CHE", "ROU", "GBR",
"BRA", "FIN", "NLD", "CAN", "ZAF", "AUS", "AGO", "BGR", "SWE", "CYP", "ARG", "ARM", "CHL", "MOZ", "KOR", "TUN", "DNK", "GRC",
"NOR", "ISR", "MYS", "EGy", "JOR", "LUX", "TUR", "IRN", "LBY", "PAN", "COL", "VEN", "DZA", "GNB", "MAR", "CZE", "SVN", "IND",
"HUN", "NZL", "PER", "LTU", "TWN", "SRB", "EST", "KAZ", "KWT", "IDN", "UKR", "MEX", "SVK", "SAU", "ARE", "BGD", "THA", "TZA",
"LVA", "PHL", "BIH", "BHR", "NAM", "BOL", "HRV", "SGP", "CMR", "MLT", "URY", "PAK", "JAM", "ECU", "SYC", "QAT", "PRY", "BRB",
"OMN", "TMP", "ABW", "LBN", "SLV", "DMA", "CUB", "VNM", "GEO", "IRQ", "PYF", "UGA", "LIE", "SEN", "BLR", "ISL", "DOM",
"GUY", "LCA", "CPV", "ATA", "GAB", "NGA", "RWA", "CIV", "ALB", "MKD", "MNE", "GTM", "GHA", "MDV", "MCO", "MUS", "TGO", "LKA",
"AZE", "SUR", "KEN", "MRT", "HKG", "SYR", "CAF", "NCL", "UZB", "KIR", "SDN", "PRI", "ATF", "KNA", "TJK", "SLE", "LAO", "COM",
"ETH", "FRO", "AND", "BEN", "ZWE", "ASM", "MLI", "BWA", "AIA", "COD", "SPM", "JEY", "MDG", "NIC", "SWZ", "CYM", "SOM", "ATG",
"KGZ", "FLK", "GIB", "SMR", "TKM", "HTI", "UMI", "MMR", "WSM", "VIR", "ERI", "WLF", "GUF", "MWI", "PCN", "TCD")
countrycode(mycodes, "iso3c", "country.name")
x <- c(countrycode)
mutate(NEWHotelCustomers, Nationality_Customers = countrycode(mycodes, "iso3c", "country.name"))
View(NEWHotelCustomers)
这是我收到的错误信息:
Error in `mutate()`:
! Problem while computing `Nationality_Customers = countrycode(mycodes, "iso3c", "country.name")`.
x `Nationality_Customers` must be size 58248 or 1, not 176.
Run `rlang::last_error()` to see where the error occurred.
Warning message:
Problem while computing `Nationality_Customers = countrycode(mycodes, "iso3c", "country.name")`.
i Some values were not matched unambiguously: TMP
提前致谢!
首先,从 mycodes-vector 创建一个 tibble/dataframe,这样你就可以将它送入 dplyr 管道。在 dplyr::mutate()
调用中使用 countrycode::countrycode()
函数附加包含国家名称和相应大陆的新变量:
library(countrycode)
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
mycodes <- c("PRT", "FRA", "JPN", "IRL", "ESP", "BEL", "AUT", "DEU", "ITA", "CHN", "RUS", "POL", "USA", "CRI", "CHE",
"ROU", "GBR", "BRA", "FIN", "NLD", "CAN", "ZAF", "AUS", "AGO", "BGR", "SWE", "CYP", "ARG", "ARM", "CHL",
"MOZ", "KOR", "TUN", "DNK", "GRC", "NOR", "ISR", "MYS", "EGy", "JOR", "LUX", "TUR", "IRN", "LBY", "PAN",
"COL", "VEN", "DZA", "GNB", "MAR", "CZE", "SVN", "IND", "HUN", "NZL", "PER", "LTU", "TWN", "SRB", "EST",
"KAZ", "KWT", "IDN", "UKR", "MEX", "SVK", "SAU", "ARE", "BGD", "THA", "TZA", "LVA", "PHL", "BIH", "BHR",
"NAM", "BOL", "HRV", "SGP", "CMR", "MLT", "URY", "PAK", "JAM", "ECU", "SYC", "QAT", "PRY", "BRB", "OMN",
"TMP", "ABW", "LBN", "SLV", "DMA", "CUB", "VNM", "GEO", "IRQ", "PYF", "UGA", "LIE", "SEN", "BLR", "ISL",
"DOM", "GUY", "LCA", "CPV", "ATA", "GAB", "NGA", "RWA", "CIV", "ALB", "MKD", "MNE", "GTM", "GHA", "MDV",
"MCO", "MUS", "TGO", "LKA", "AZE", "SUR", "KEN", "MRT", "HKG", "SYR", "CAF", "NCL", "UZB", "KIR", "SDN",
"PRI", "ATF", "KNA", "TJK", "SLE", "LAO", "COM", "ETH", "FRO", "AND", "BEN", "ZWE", "ASM", "MLI", "BWA",
"AIA", "COD", "SPM", "JEY", "MDG", "NIC", "SWZ", "CYM", "SOM", "ATG", "KGZ", "FLK", "GIB", "SMR", "TKM",
"HTI", "UMI", "MMR", "WSM", "VIR", "ERI", "WLF", "GUF", "MWI", "PCN", "TCD")
df <- tibble(codes = mycodes)
df <- df %>%
mutate(countryname = countrycode(mycodes, "iso3c", "country.name"),
continent = countrycode(mycodes, "iso3c", "continent") )
#> Warning in countrycode_convert(sourcevar = sourcevar, origin = origin, destination = dest, : Some values were not matched unambiguously: TMP
#> Warning in countrycode_convert(sourcevar = sourcevar, origin = origin, destination = dest, : Some values were not matched unambiguously: ATA, ATF, TMP, UMI
head(df)
#> # A tibble: 6 x 3
#> codes countryname continent
#> <chr> <chr> <chr>
#> 1 PRT Portugal Europe
#> 2 FRA France Europe
#> 3 JPN Japan Asia
#> 4 IRL Ireland Europe
#> 5 ESP Spain Europe
#> 6 BEL Belgium Europe
由 reprex package (v0.3.0)
创建于 2022-05-26你在找
library(countrycode)
df <- data.frame(country_code = mycodes,
country_name = countrycode(sourcevar = mycodes, origin = "iso3c",
destination = "country.name"),
continent = countrycode(sourcevar = mycodes, origin = "iso3c",
destination = "continent"))
head(df)
?
请注意,countrycode()
无法明确识别所有字符串“iso3c”(国家/地区代码)。查看警告以确定哪个
#> Warning in countrycode_convert(sourcevar = sourcevar, origin = origin, destination = dest, : Some values were not matched unambiguously: TMP
#> Warning in countrycode_convert(sourcevar = sourcevar, origin = origin, destination = dest, : Some values were not matched unambiguously: ATA, ATF, TMP, UMI
顺便说一句,我认为这里没有必要使用 {dplyr}
。
数据
mycodes <- c("PRT", "FRA", "JPN", "IRL", "ESP", "BEL", "AUT", "DEU", "ITA", "CHN", "RUS", "POL", "USA", "CRI", "CHE", "ROU", "GBR",
"BRA", "FIN", "NLD", "CAN", "ZAF", "AUS", "AGO", "BGR", "SWE", "CYP", "ARG", "ARM", "CHL", "MOZ", "KOR", "TUN", "DNK", "GRC",
"NOR", "ISR", "MYS", "EGy", "JOR", "LUX", "TUR", "IRN", "LBY", "PAN", "COL", "VEN", "DZA", "GNB", "MAR", "CZE", "SVN", "IND",
"HUN", "NZL", "PER", "LTU", "TWN", "SRB", "EST", "KAZ", "KWT", "IDN", "UKR", "MEX", "SVK", "SAU", "ARE", "BGD", "THA", "TZA",
"LVA", "PHL", "BIH", "BHR", "NAM", "BOL", "HRV", "SGP", "CMR", "MLT", "URY", "PAK", "JAM", "ECU", "SYC", "QAT", "PRY", "BRB",
"OMN", "TMP", "ABW", "LBN", "SLV", "DMA", "CUB", "VNM", "GEO", "IRQ", "PYF", "UGA", "LIE", "SEN", "BLR", "ISL", "DOM",
"GUY", "LCA", "CPV", "ATA", "GAB", "NGA", "RWA", "CIV", "ALB", "MKD", "MNE", "GTM", "GHA", "MDV", "MCO", "MUS", "TGO", "LKA",
"AZE", "SUR", "KEN", "MRT", "HKG", "SYR", "CAF", "NCL", "UZB", "KIR", "SDN", "PRI", "ATF", "KNA", "TJK", "SLE", "LAO", "COM",
"ETH", "FRO", "AND", "BEN", "ZWE", "ASM", "MLI", "BWA", "AIA", "COD", "SPM", "JEY", "MDG", "NIC", "SWZ", "CYM", "SOM", "ATG",
"KGZ", "FLK", "GIB", "SMR", "TKM", "HTI", "UMI", "MMR", "WSM", "VIR", "ERI", "WLF", "GUF", "MWI", "PCN", "TCD")