Я хочу выяснить, что происходит с генерацией этой таблицы частот для каждого атрибута по номеру варианта. По какой-то причине я продолжаю получать ошибку «все аргументы должны иметь одинаковую длину» для таблицы в аргументе for ().
Я проверил правильность названий вариантов и убедился, что length(jar.beta$variant)
равен length(jar.beta$overall)
и всем другим атрибутам, но он не работает. Атрибуты являются векторами, но я попытался изменить их на факторы.
Надеюсь найти помощь. Заранее спасибо!
#Sample Input
library(tibble)
jar.beta <- tribble(
~date, ~variant, ~appearance, ~crunch, ~spring, ~density, ~season, ~salt, ~overall,
1-1-19, 11, 4, 5, 6, 1, 4, 2, 5,
1-1-19, 11, 4, 5, 1, 1, 3, 7, 8,
1-1-19, 1.4, 1, 1, 6, 1, 2, 2, 2.5,
1-1-19, 1.4, 4, 5, 6, 1, 4, 2, 5,
1-1-19, 1.3, 4, 5, 6, 1, 4, 2, 5,
1-1-19, 1.3, 4, 5, 6, 1, 4, 2, 5
)
jar.beta$variant <- as.factor(jar.beta$variant)
jar.beta$date <-as.factor(jar.beta$date)
#Code in Question
percentage <- vector("list", 7)
names(percentage) <- colnames(jar.beta[3:9])
for (i in 1:9){
attribute.freq <- table(jar.beta$variant,jar.beta[,i+2])
percentage[[i]] <- as.matrix(100*prop.table(attribute.freq,margin=1),2)
}
#Desired Output as a Percent Frequency Table
2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 8 8.5
11 16.67 33.33 16.67 0.00 0.00 0.00 16.67 0.00 0.00 0.00 16.67 0.00 0.00
1.4 0.00 0.00 16.67 0.00 16.67 16.67 50.00 0.00 0.00 0.00 0.00 0.00 0.00
1.3 0.00 0.00 0.00 0.00 0.00 0.00 66.67 16.67 0.00 0.00 0.00 0.00 16.67