我是R.的新手 . 我需要生成一个具有累积频率和相对频率的简单频率表(如书中) .
所以我想从一些简单的数据生成
> x
[1] 17 17 17 17 17 17 17 17 16 16 16 16 16 18 18 18 10 12 17 17 17 17 17 17 17 17 16 16 16 16 16 18 18 18 10
[36] 12 15 19 20 22 20 19 19 19
像这样的表:
frequency cumulative relative
(9.99,11.7] 2 2 0.04545455
(11.7,13.4] 2 4 0.04545455
(13.4,15.1] 1 5 0.02272727
(15.1,16.9] 10 15 0.22727273
(16.9,18.6] 22 37 0.50000000
(18.6,20.3] 6 43 0.13636364
(20.3,22] 1 44 0.02272727
我知道它应该很简单,但我不知道如何 .
我使用此代码获得了一些结果:
factorx <- factor(cut(x, breaks=nclass.Sturges(x)))
as.matrix(table(factorx))
5 回答
你很亲密!有一些功能可以让你轻松,即
cumsum()
和prop.table()
. 这里's how I' d可能把它放在一起 . 我做了一些随机数据,但重点是:基本函数
table
,cumsum
和prop.table
可以帮到你:有了cbind并根据自己的喜好命名列,这对你来说应该很容易 . 表函数的输出是一个矩阵,因此该结果也是一个矩阵 . 如果这是在一个大的东西上完成,那么这将是更有效的:
如果您正在寻找预先打包的东西,请考虑
descr
包中的freq()
函数 .或者要获得累积百分比,请使用
ordered()
函数要添加“累积频率”列:
如果您的数据缺少值,则会向表中添加有效的百分比列 .
另一种可能性:
我的建议是检查农业包装......检查一下: