如何将矢量转换为r中的集合

时间:2011-10-31 12:26:14

标签: r

我希望在数据框的列中看到所有可能值的列表,而不重复。类似的东西:

as.set(series["begin_year"][,1])

表示“begin_year”列,但as.set不存在。

2 个答案:

答案 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"