2016-04-25 87 views
-1

我有一個名爲「Country」的變量,我想創建一個子集,其中「Country」等於印度,印度,阿聯酋和阿聯酋。忽略dplyr包中的大小寫

b = a[a$Country=="india" | a$Country=="INDIA" | a$Country=="uae" | a$Country=="UAE",] 

由於帕拉指出,你也可以轉換爲小寫:如何使用忽略dplyr

情況下,我已經試過 B <-subset(a, country %in% c("india", "INDIA", "uae", "UAE"))

+0

不是'dplyr',但你可以在以下基礎:'b = a [a $ Country ==「india」| $ Country ==「INDIA」| $ Country ==「uae」|一個$ Country ==「uae」,]' – User7598

+1

您可以先使用'a country country < - tolower($ country)'將全部轉換爲小寫。然後,只使用一個條件。 – Gopala

回答

0

轉換評論回答做的,你可以在基地做案例第一,這將簡化邏輯論證,如:

a$country <- tolower(a$country) 
b = a[a$Country=="india" | a$Country=="uae",] 

但請注意,這將改變所有t他的國名要小寫。

0

正如@gopala提到的,你可以將全國變量大寫或小寫,然後%的人使用%

a$country <- tolower(a$country) 
b <- a[country %in% c("india", "uae") ,] 

如果由於某種原因,如在圖製作標題,你會希望保留該國變量的箱體結構,可以做到以下幾點:

a$country <- 
b <- a[tolower(a$country) %in% c("india", "uae") ,] 
2

要dplyr你會使用過濾器的子集。這裏是一個例子:

library(dplyr) 

df <- data_frame(country = c("india", "INDIA", "uae", "UAE", "US", "Germany", "Some other Country"), val = c(1:7)) 

some.countries <- df %>% filter(grepl("india|uae", country, ignore.case = TRUE)) 
some.countries 
#Source: local data frame [4 x 2] 
# 
# country val 
# (chr) (int) 
#1 india  1 
#2 INDIA  2 
#3  uae  3 
#4  UAE  4