如果您想快速计算多个 likert 项目的计数或比例并在 data.frame 中获取输出,您可能会喜欢包psych::response.frequencies
中的函数psych
。
让我们创建一些数据(注意没有 9):
df <- data.frame(item1 = sample(1:7, 2000, replace = TRUE),
item2 = sample(1:7, 2000, replace = TRUE),
item3 = sample(1:7, 2000, replace = TRUE))
如果要计算每个类别中的比例
psych::response.frequencies(df, max = 1000, uniqueitems = 1:9)
你得到以下信息:
1 2 3 4 5 6 7 8 9 miss
item1 0.1450 0.1435 0.139 0.1325 0.1380 0.1605 0.1415 0 0 0
item2 0.1535 0.1315 0.126 0.1505 0.1535 0.1400 0.1450 0 0 0
item3 0.1320 0.1505 0.132 0.1465 0.1425 0.1535 0.1430 0 0 0
如果你想要计数,你可以乘以样本大小:
psych::response.frequencies(df, max = 1000, uniqueitems = 1:9) * nrow(df)
您会得到以下信息:
1 2 3 4 5 6 7 8 9 miss
item1 290 287 278 265 276 321 283 0 0 0
item2 307 263 252 301 307 280 290 0 0 0
item3 264 301 264 293 285 307 286 0 0 0
几点注意事项:
- 默认
max
值为 10。因此,如果您有超过 10 个响应选项,您就会遇到问题。否则,在您的情况和许多李克特项目情况下,您可以省略该max
论点。
uniqueitems
指定可能的值。如果您的所有值都存在于至少一项中,那么这将从数据中推断出来。
- 我认为该函数仅适用于数字数据。因此,如果您将 Likert 类别编码为“非常不同意”等,它将无法正常工作。