2014-10-12 71 views
0

我想獲取列表中具有多於兩個唯一值的所有變量的名稱。 對於以下數據框我使用: length(unique(dat$category)) ; length(unique(dat$birds)) ;length(unique(dat$wolfs));length(unique(dat$snakes)) 但顯然它給了我每個選定變量的結果。任何想法?如何獲取列表中具有多個兩個唯一值的所有變量的名稱

dat <- read.table(text = " category birds wolfs  snakes 
        yes  3  9   7 
        no   3  8   4 
        no   1  2   8 
        yes  1  2   3 
        yes  1  8   3 
        no   6  1   2 
        yes  6  7   1 
        no   6  1   5 
        yes  5  9   7 
        no   3  8   7 
        no   4  2   7 
        notsure 1  2   3 
        notsure 7  6   3 
        no   6  1   1 
        notsure 6  3   9 
        no   6  1   1 ",header = TRUE) 

回答

1

可能是你可以嘗試:

names(dat)[sapply(dat, function(x) length(unique(x))>2)] #in this example, all the variables have length of unique values >2 
#[1] "category" "birds" "wolfs" "snakes" 
+0

非常感謝,akrun – 2014-10-12 08:54:28

0

您還可以使用duplicated

check <- sapply(dat, function(x) any(duplicated(x))) 
check 
# category birds wolfs snakes 
#  TRUE  TRUE  TRUE  TRUE 

爲了然後提取名names(dat)[check]

相關問題