R:具有比例的分组数据表

时间:2014-05-02 15:37:27

标签: r statistics

我已经复制了下面的代码。我首先列出50个小整数,代表50个家庭拥有的电视机数量。我的目标显示在对象' tv.final'下面。我的努力似乎非常冗长和低效。

问题:有没有更好的方法从50个整数的列表开始,并以比例的分组数据表结束? (只是带着我的第一个婴儿步骤,抱歉这样一个愚蠢的问题,但询问的头脑想知道。)

tv.data <- read.table("Tb02-08.txt",header=TRUE)
str(tv.data)
# 'data.frame':   50 obs. of  1 variable:
#  $ TVs: int  1 1 1 2 6 3 3 4 2 4 ...

tv.table <- table(tv.data)
tv.table
# tv.data
#  0  1  2  3  4  5  6 
#  1 16 14 12  3  2  2 

tv.prop <- prop.table(tv.table)*100
tv.prop
# tv.data
#  0  1  2  3  4  5  6 
#  2 32 28 24  6  4  4 

tvs <- rbind(tv.table,tv.prop)
tvs
#          0  1  2  3 4 5 6
# tv.table 1 16 14 12 3 2 2
# tv.prop  2 32 28 24 6 4 4

tv.final <- t(tvs)
tv.final
#   tv.table tv.prop
# 0        1       2
# 1       16      32
# 2       14      28
# 3       12      24
# 4        3       6
# 5        2       4
# 6        2       4

1 个答案:

答案 0 :(得分:0)

您可以将table()返回的对象视为任何其他向量/矩阵:

tv.table <- table(tv.data)
round(100 * tv.table/sum(tv.table))

这将为您提供圆整百分点的比例。