我在 R 中有以下数据框,具有 3 个因子列,具有相同的级别,如下所示:
A | B | C |
---|---|---|
1 1-强烈不同意 | 5-强烈同意 | 1-强烈不同意 |
2 3 一般 | 5-强烈同意 | 2-不同意 |
3 4-同意 | 2-不同意 | 2-不同意 |
4 2-不同意 | 2-不同意 | 5-强烈同意 |
我想使用 dplyr 函数来将我的数据框更改为这样:
项目 | 1-强烈不同意 | 2-不同意 | 3 一般 | 4-同意 | 5-强烈同意 |
---|---|---|---|---|---|
A | 26.72 | 21.41 | 27.45 | 17.80 | 6.59 |
B | 25.0 | 20.2 | 28.27 | 18.36 | 8.0 |
C | 6.3 | 9.5 | 28.6 | 40.35 | 15.17 |
单元格上的数字是任意的。
A = sample(c('1-Strongly disagree','2-Disagree','3-so-so','4-Agree','5-Strongly agree'),1000,replace = TRUE)
B = sample(c('1-Strongly disagree','2-Disagree','3-so-so','4-Agree','5-Strongly agree'),1000,replace = TRUE)
C = sample(c('1-Strongly disagree','2-Disagree','3-so-so','4-Agree','5-Strongly agree'),1000,replace = TRUE)
df = tibble(A,B,C)%>%
mutate(across(everything(),as.factor));df
library(tidyverse)
set.seed(1234) # for reproducible testing
A = sample(c('1-Strongly disagree','2-Disagree','3-so-so','4-Agree','5-Strongly agree'),1000,replace = TRUE)
B = sample(c('1-Strongly disagree','2-Disagree','3-so-so','4-Agree','5-Strongly agree'),1000,replace = TRUE)
C = sample(c('1-Strongly disagree','2-Disagree','3-so-so','4-Agree','5-Strongly agree'),1000,replace = TRUE)
df = tibble(A,B,C)%>%
mutate(across(everything(),as.factor));df
df |>
pivot_longer(cols = everything(), names_to = "Item") |>
pivot_wider(names_from = value, values_fn = length)
给予
# A tibble: 3 × 6
Item `4-Agree` `1-Strongly disagree` `2-Disagree` `5-Strongly agree` `3-so-so`
<chr> <int> <int> <int> <int> <int>
1 A 194 194 181 197 234
2 B 193 195 194 219 199
3 C 201 195 205 199 200