2017-12-07 2 views
-1

저는 데이터 프레임에 UN이라는 이름의 198 개국이 있습니다. 나는 대륙에서이 나라들을 분열시키는 새로운 변수를 만들고 싶다.대륙 - 새 변수 만들기 - R

지금까지 다음 코드를 사용하고 있습니다 :

attach(df) 
df$Continent[Country==c('country', 'country', ...)] <- "Americas" 
df$Continent[Country==c('country', 'country', ...)] <- "Africa" 
df$Continent[Country==c('country', 'country', ...)] <- "Asia" 
df$Continent[Country==c('country', 'country', ...)] <- "Europe" 
df$Continent[Country==c('country', 'country', ...)] <- "Oceania" 
detach(df) 

문제는 R 경고 메시지 "를 표시, 나 같은 브라켓에 각 대륙에 대해 사용할 수있는 모든 국가 이름을 넣어하지 않는다는 것입니다 더 긴 오브젝트 길이는 더 짧은 오브젝트 길이의 배수가 아닙니다. " 국가를 여러 줄로 구분하면 만들 수 있습니다. 그러나 이것은 매우 비효율적이므로이를 수행하는 데 영리하고 빠른 방법이 있는지 궁금합니다.

+1

'=='대신'% in % '를 사용하면 다음과 같이 국가 목록을 정의 할 수 있습니다. – LyzandeR

답변

1

LyzandeR stated으로 %in% 연산자를 사용할 수 있습니다.

americas <- c("country", "country", "country", ...) 
africa <- c("country", "country", "country", ...) 
asia <- c("country", "country", "country", ...) 
# and so on... 

attach(df) 
df$Continent[Country %in% americas] <- "Americas" 
df$Continent[Country %in% africa] <- "Africa" 
df$Continent[Country %in% asia] <- "Asia" 
df$Continent[Country %in% europe] <- "Europe" 
df$Continent[Country %in% oceania] <- "Oceania" 
detach(df) 
관련 문제