对表中的序数变量重新排序

问题描述 投票:0回答:1

我是一个超级初学者,我正在使用 Rstudio 进行大学项目,但我遇到了以下问题。

我创建了一个表如下

> table(Nationality,Q11)
           Q11
Nationality A little bit Absolutely not Absolutely yes Fairly
  I                4              0              1      0
  J                3              0              0      2
  S                3              1              0      1

我需要按如下方式重新订购 Q11: 绝对不是,有一点,相当,绝对是

作为一张桌子,我找不到解决方案。 我尝试使用 data.frame 和级别:

data.frame(Nationality, Q11)
df_FC_N_Q11 <- data.frame(Nationality, Q11)
levels(df_FC_N_Q11$Q11)
levels(df_FC_N_Q11$Nationality)

但结果如下:

> df_FC_N_Q11 <- data.frame(Nationality, Q11)
> levels(df_FC_N_Q11$Q11)
NULL
> levels(df_FC_N_Q11$Nationality)
NULL
r
1个回答
0
投票

要重新排序

Q11
,请在调用
table
之前强制将级别设置为所需顺序进行因子分解。

Q11_levels <- c("Absolutely not", "A little bit", "Fairly", "Absolutely yes")
df_FC_N_Q11$Q11 <- factor(df_FC_N_Q11$Q11, levels = Q11_levels)

with(df_FC_N_Q11, table(Nationality, Q11))
#>            Q11
#> Nationality Absolutely not A little bit Fairly Absolutely yes
#>           I             10           14      8              9
#>           J             10            8      4              7
#>           S              6           12      9              3

创建于 2024 年 10 月 26 日,使用 reprex v2.1.1


数据

Q11 <- c("A little bit", "Absolutely not", "Absolutely yes", "Fairly")
Nationality <- c("I", "J", "S")

n <- 1e2
set.seed(2024)
df_FC_N_Q11 <- data.frame(
  Nationality = sample(Nationality, n, TRUE), 
  Q11 = sample(Q11, n, TRUE)
)

创建于 2024 年 10 月 26 日,使用 reprex v2.1.1

© www.soinside.com 2019 - 2024. All rights reserved.