我希望通过变体编号找出针对每个属性生成此频率表的过程。由于某种原因,我在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