为什么table()函数的长度参数错误而没有NA?

时间:2019-10-18 16:38:07

标签: r

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

0 个答案:

没有答案