我希望在数据框的列中看到所有可能值的列表,而不重复。类似的东西:
as.set(series["begin_year"][,1])
表示“begin_year”列,但as.set
不存在。
答案 0 :(得分:5)
唯一函数应该这样做,并且还有一些其他与set相关的函数:union,union,setdiff,setequal和is.element,它们记录在help(union)页面上。
答案 1 :(得分:4)
unique()
[或levels()
,如果列是一个因素]。
以下是可重现的例子:
dat <- OrchardSprays
dat$rowpos
unique(dat$rowpos)
dat$treatment
unique(dat$treatment)
levels(dat$treatment)
修改强>
请注意,levels()
将返回该因子的唯一级别,即使该级别未使用也是如此。考虑:
dat2 <- subset(dat, treatment != "A")
unique(dat2$treatment)
# [1] D E B H G F C
# Levels: A B C D E F G H
levels(dat2$treatment)
# [1] "A" "B" "C" "D" "E" "F" "G" "H"
您可以使用droplevels()
删除未使用的级别:
dat2$treatment <- droplevels(dat2$treatment)
levels(dat2$treatment)
# [1] "B" "C" "D" "E" "F" "G" "H"