이 칼럼에는 많은 국가가 있습니다.
countries <- c(Germany, France, Japan, China, Angola, Nigeria)
대륙이라는 새 열을 만들어 이러한 장소를 집계하고 싶습니다. 예를 들어, 이것을 시도했지만 작동하지 않았습니다.
if (countries == "Germany" | "France" {
countries$continents <- "Europe"
} else if (countries == "Japan" |"China") {
countries$continents <- "Asia"
} else if (countries == "Angola" |"Nigeria") {
countries$continents <- "África"
하지만 R은 계속해서 문자열을 비교할 수 없다고 말합니다. dplyr에 영리한 솔루션이있을 수 있지만 모든 솔루션을 환영합니다. 어떻게하나요?
@markus가 지적했듯이 % in % 사용
이것을 사용하여 시도 할 수 있습니다. dplyr
library(dplyr)
df <- data.frame(countries = c("Germany", "France", "Japan", "China", "Angola", "Nigeria"))
df1 <-
df %>%
mutate(continent = case_when(countries %in% c("Germany", "France") ~ "Europe",
countries %in% c("Japan", "China") ~ "Asia",
countries %in% c("Angola", "Nigeria") ~ "Africa"))
그러나 countrycode
@markus에서 언급했듯이 패키지 를 사용하는 것이 더 깔끔 할 수 있습니다.
library(countrycode)
df_continents <-
codelist %>%
select(country.name.en, continent)
df2 <-
df %>%
left_join(df_continents, by = c("countries" = "country.name.en"))
df2
#> countries continent
#> 1 Germany Europe
#> 2 France Europe
#> 3 Japan Asia
#> 4 China Asia
#> 5 Angola Africa
#> 6 Nigeria Africa
reprex 패키지 (v0.3.0)에 의해 2020-09-18에 생성됨
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다