我想知道(每个值/总数的数量)
让我用我的图片文件解释..很难描述
我的数据中 Table2 ,我想知道每个数字占总数的百分比
离)
20row中有两个1.5 - > 1/10 =(0.1) 并且在20行中有四个3.o - > 1/5 =(0.2)
像这样..所以我写了这样的代码freq2<-rep(0,10) # to make space
for (i in 1:10) {
freq2[i]<-length(table2$xbar2.i.[table2$xbar2.i.==i])
}
让我解释一下我的代码,我让freq2为计数频率腾出空间 并使用递归函数计算每个数字(1.5,2.0 ......等)
但我意识到递归函数可以检测小数点 1.5 2.5 ....
有没有不同的,或更聪明的方法来实现我的目标?
要说清楚,我的目标是知道每个号码在总数中的存在量
ex)1.5 - &gt; 2/20 3.0 - &gt; 4/20,
或者如果这个目标很难,只知道每个数字存在多少1.5 - &gt; 2 3.0 - &gt; 4
感谢阅读..! 我感谢您的帮助!
答案 0 :(得分:1)
这可以使用dplyr
k <- nrow(Table2)
freq2 <- Table2 %>%
group_by(xbar2.i.) %>%
summarise(Counts = n()) %>%
ungroup() %>%
mutate(Prop = Counts/k)
我认为你的目标是什么?
答案 1 :(得分:1)
仅使用base R,这里有两种方法可以满足您的要求。
由于您以错误的格式发布了数据,因此我编写了一个数据框。
set.seed(1)
dat <- data.frame(xbar2.i = rep((2:6)/2, times = sample(5, 5, TRUE)))
现在代码。
tapply(dat$xbar2.i, dat$xbar2.i, FUN = length)/length(dat$xbar2.i)
# 1 1.5 2 2.5 3
#0.1428571 0.1428571 0.2142857 0.3571429 0.1428571
ave(dat$xbar2.i, dat$xbar2.i, FUN = length)/length(dat$xbar2.i)
答案 2 :(得分:1)
阅读help("prop.table")
。在该帮助页面中,尽管该函数的描述充其量只是简洁,但标题却说明了一切:
将表格条目表示为边际表的分数
所以以下内容会做你想要的。
prop.table(table(dat$xbar2.i.))