【发布时间】:2021-01-21 20:41:37
【问题描述】:
数据:
| product | q1 | q2 | q3 |
|---|---|---|---|
| 1 | 5 | 9 | NA |
| 1 | 6 | 7 | NA |
| 2 | 4 | 4 | 9 |
| 2 | 9 | 6 | 8 |
| 2 | 8 | 4 | NA |
这是一个小例子,但我的代码循环通过列 q2 并在到达 q3 时显示
Error: Selections can't have missing values. 不能将 Null 值更改为 0,因为它会改变平均值。
代码
for(i in 2:ncol(dataset)){
column<-names(dataset[i])
count<-tabyl(dataset,dataset[,i],product,show_na = FALSE,show_missing_levels = FALSE) %>% adorn_percentages("col") %>% adorn_pct_formatting(digits=0)
print(column)
print(count)
}
另外,q1,q2等是基于问题的产品排名,所以排名尺度是1-9,但是在数据集中有一些没有提到的尺度数字。即使频率为0,有没有办法显示所有比例值?
【问题讨论】:
-
我稍微修改了你的问题以澄清它,我希望我能准确地解释它。通常有一种比 for 循环更自然(对 R 而言)的迭代方式,在这里,当您的循环需要单个向量或数据时,它会将向量 (
dataset[,i]) 和列名的混合发送到tabyl。框架和两个列名。