Skopiowałem mój kod poniżej. Zaczynam od listy 50 małych liczb całkowitych, reprezentujących liczbę telewizorów należących do 50 rodzin. Mój cel jest pokazany w obiekcie „tv.final” poniżej. Mój wysiłek wydaje się bardzo słaby i nieefektywny.
Pytanie: czy jest lepszy sposób, aby zacząć od listy 50 liczb całkowitych i zakończyć zgrupowaną tabelą danych z proporcjami? (Właśnie biorę moje pierwsze kroki z R, przepraszam za takie głupie pytanie, ale dociekliwe umysły chcą wiedzieć)
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
Odpowiedzi:
0 dla odpowiedzi № 1Możesz traktować obiekt zwrócony przez table()
jak każdy inny wektor / macierz:
tv.table <- table(tv.data)
round(100 * tv.table/sum(tv.table))
To da ci proporcje w zaokrąglonych punktach procentowych.