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