如何获取列表中具有两个以上唯一值的所有变量的名称

时间:2014-10-12 08:10:51

标签: r dataframe

我想获取列表中具有两个以上唯一值的所有变量的名称。 对于下面我使用的数据框: 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)

2 个答案:

答案 0 :(得分: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"  

答案 1 :(得分:0)

您也可以使用duplicated

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

然后提取名称names(dat)[check]