【发布时间】:2013-06-20 15:39:54
【问题描述】:
给定以下模拟数据:
set.seed(123)
x <- data.frame(let = sample(letters[1:5], 100, replace = T),
num = sample(1:10, 100, replace = T))
y <- subset(x, let != 'a')
创建一个包含y$let 的表格
a b c d e
0 20 21 22 18
但我不想再显示a。如果我尝试这样做:
levels(y$let) <- factor(y$let)
我弄乱了频率,因为现在table(y$let) 给了我
b d c e
0 20 21 40
我知道我可以做 xtabs(~ y$let, drop.unused.levels = T) 并解决这个问题,但它不会重置其核心的变量级别(这对我来说很重要,因为这是我对数据集,将在整个分析过程中进行)。而且,xtabs 和table 是不同的类,这让我在项目后期很头疼。
问题是:如何自动更改levels(y$let),使其不显示创建子集时删除的级别?在这种情况下,我怎样才能让它显示[1] "b" "c" "d" "e"?
【问题讨论】:
-
重复问题中的获胜答案不如这里的答案。另一个应该被标记为这个的副本,因为这是一个更好的答案