使用类因子打印变量的所有级别

时间:2014-05-30 16:10:13

标签: r

我有一些数据集,其中有些是因素,有些是数字/整数,所以应该是返回因子类级别的命令。

aa bb cc dd
1  12 P  43
4  23 Q  78
8  34 Q  89
9  86 P  78
7  67 P  98
9  76 Q  74

所以,现在如果我想用类因子打印所有级别的变量,即以cc为单位的P和Q,那么我的R命令应该是什么?

提前致谢

2 个答案:

答案 0 :(得分:0)

我不确定我是什么意思“用类因子打印所有级别的变量,即用cc表示P和Q”,但我认为你正在寻找subset

> x
  aa bb cc dd
1  1 12  P 43
2  4 23  Q 78
3  8 34  Q 89
4  9 86  P 78
5  7 67  P 98
6  9 76  Q 74
> subset(x, cc=='P')
  aa bb cc dd
1  1 12  P 43
4  9 86  P 78
5  7 67  P 98

答案 1 :(得分:0)

levels函数显示因子变量的级别。假设您的样本数据称为dat。要查看因子列的级别而不显示非因子列的NULL,您可以执行以下操作。

> lapply(dat[sapply(dat, is.factor)], levels) 
# $cc
# [1] "P" "Q"

如果有多个因子列,上面的行将显示它们各自的列名和级别。此外,您可以将整个数据集视为一个列表,该列表还将显示任何因子变量的级别。

> as.list(dat)
# $aa
# [1] 1 4 8 9

# $bb
# [1] 12 23 34 86

# $cc
# [1] P Q Q P
# Levels: P Q

# $dd
# [1] 43 78 89 78