2016-04-19 1 views
3

Мне нужно создать просто частотную таблицу, как те, которые мы видим в статистических книгах. Я работаю с этими данными:r knit html Как создать простую таблицу частот, такую ​​как те, что мы видим в книгах?

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)) 

Но я не могу поверить, что это не простой способ, как его принимать слишком много усилий. Поэтому я считаю, что не знаю функции, которая сделала бы это очень просто. Мой целевой результат: A statistical table like the ones from books, with 10 columns

Моя основная боль заключается в том, чтобы показать второй столбец и сделать совокупность данных, как это было предложено им. Эта таблица должна использоваться со статистикой 101 ученика класса, чтобы затем ответить на вопрос, поэтому мне нужно показать все эти столбцы, так как они могут дважды проверить свои результаты.

ответ

1

После некоторых попыток я наконец придумал решение. Не очень, но это сработало как шарм, поэтому я использовал его. В любом случае, если кто-то знает о лучшем решении, пожалуйста, не стесняйтесь публиковать его здесь.

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, я использовал этот код.

Смежные вопросы