我已经复制了下面的代码。我首先列出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
答案 0 :(得分:0)
您可以将table()
返回的对象视为任何其他向量/矩阵:
tv.table <- table(tv.data)
round(100 * tv.table/sum(tv.table))
这将为您提供圆整百分点的比例。