【发布时间】:2016-02-03 07:53:49
【问题描述】:
我有因子列的数据帧。这里是一个很小的示例:
dat <- data.frame(one = factor(c("a", "b")), two = factor(c("c", "d")))
我可以计算所依据的因素标签每列的数字值的装置:
mean(as.integer(dat$one))
[1] 1.5
不过,因为有我的数据帧非常多列,我想,以避免计算所有个体手段,宁愿做这样的事情: P>
colMeans(dat)
不工作,因为列因素,或者 P>
colMeans(as.integer(dat))
这也不起作用。 P>
那么,如何可以容易地计算所有因子列的手段,没有一个环或单独计算它们所有吗
我真的要change the class of all columns? P>
【问题讨论】:
-
colMeans(data.matrix(dat))可以工作。跨度> -
@帕斯卡待办事项
str(dat),这将返回三行,其中一个读取:$ one: Factor w/ 2 levels "a","b": 1 2。这告诉你,“A”和“B”仅仅是标签和因素包含数字。通过铸造的因子为数字或整数(我的第二个例子),我可以在这些数字获得。跨度> -
谢谢,@DavidArenburg,这是完美的。 SPAN>
-
你应该提防尽管这种操作。有时底层整数可以相当混乱。 SPAN>
-
感谢您的提醒,@DavidArenburg,这很容易忘记。在目前的情况下我花了很多心血来正确排序我的标贴,想想羯羊的因素实际上是超过序数型标尺缩放。 SPAN>