我需要创建一个简单的频率表,就像我们在统计书籍上看到的那样。
我正在处理这些数据:

Notas <- c(64,78,66,82,74,103,78,86,103,87,73,95,82,89,73,92,85,80,81,90,78,86,78,101,85,98,75,73,90,86,86,84,86,76,76,83,103,86,84,85,76,80,92,102,73,87,70,85,79,93,82,90,83,81,85,72,81,96,81,85,68,96,86,70,72,74,84,99,81,89,71,73,63,105,74,98,78,78,83,96,95,94,88,62,91,83,98,93,83,76)

到目前为止我做到了:
library('dplyr')
tabela <- as.data.frame(Notas)
tabela <- tabela %>%
  mutate(fr=round(prop.table(Notas),digits=2),
         fr_perc = round(prop.table(Notas)*100,digits=2))

但我不能相信没有比这更容易的方法了,因为这需要付出太多的努力。所以我相信我不知道一个函数能以一种非常简单的方式来实现这一点。
我的预期结果是:
html - r knit html如何创建像在书本上看到的那样的简单频率表?-LMLPHP
我的主要痛苦是显示第二列并按照它的建议进行数据聚合。
这个表将用于统计101班的学生,然后显示一个问题的答案,这就是为什么我需要显示所有这些列,因为这是他们可以重复检查他们的结果的方式。

最佳答案

经过几次尝试,我终于想出了一个解决办法。不是很漂亮,但很有魅力,所以我就用了。不管怎样,如果有人知道更好的解决方案,请随时张贴在这里。

library(knitr)
library(dplyr)
Notas <- c(64,78,66,82,74,103,78,86,103,87,73,95,82,89,73,92,85,80,81,90,78,86,78,101,85,98,75,73,90,86,86,84,86,76,76,83,103,86,84,85,76,80,92,102,73,87,70,85,79,93,82,90,83,81,85,72,81,96,81,85,68,96,86,70,72,74,84,99,81,89,71,73,63,105,74,98,78,78,83,96,95,94,88,62,91,83,98,93,83,76)
int_clas <- floor(1+3.3*log10(length(Notas)))
ampl_amos <-  ceiling((max(Notas) - min(Notas)) / int_clas)
i <- c(1:int_clas)
tabela <- as.data.frame(i)
base <- array(0,int_clas)
topo <- array(0,int_clas)
notas <- array(0,int_clas)
xi <- array(0,int_clas)
fi <- array(0,int_clas)
Fi <- array(0,int_clas)
Fri <- array(0,int_clas)
Fri_perc <- array(0,int_clas)
for (z in 1:int_clas) {
   base[z] <- cbind(min(Notas)+(ampl_amos*(z-1)))
   topo[z] <- cbind(min(Notas)+(ampl_amos*z))
   notas[z] <- cbind(paste(as.character(base[z])," &rarr; ", as.character(topo[z]), sep = " "))
   xi[z] <- cbind(ceiling((base[z]+topo[z])/2))
   fi[z] <- cbind(sum(Notas>base[z]-1 & Notas<topo[z]))
   Fi[z] <- cbind(sum(fi[1:z]))
}
tabela <- tabela %>%
   mutate(notas,xi,fi,xifi=xi*fi,fri=fi/sum(fi),fri_perc=fi/sum(fi)*100,Fi)
for (z in 1:int_clas) {
   Fri[z] <- cbind(sum(tabela$fri[1:z]))
   Fri_perc[z] <- cbind(sum(tabela$fri_perc[1:z]))
}
tabela <- tabela %>%
   mutate(Fri,Fri_perc)
kable(tabela,digits = 2)

在代码中可以看到的“&ra rr;”是一个HTML代码,用于插入这样的箭头(—)。当我把它编织成html时,我使用了这段代码。

10-08 00:30