-3

我正在编写一份 R 的 CVS 调查文件。在分析之前,我想在 4 Likert 量表上反转一些项目的编码。将 1 转为 4、2 转为 3、3 转为 2、4 转为 1。

关于如何做到这一点的任何想法?

4

1 回答 1

1

一种选择是从 4 中减去(假设这些是唯一的值)

4- v1 + 1
#[1] 2 2 1 2 3 2 4 3 1 3 3 4 1 4 1 2 1 4 4 1

与原始向量比较

v1
#[1] 3 3 4 3 2 3 1 2 4 2 2 1 4 1 4 3 4 1 1 4

相同的代码可以应用于matrix. 在对列进行子集化之后[, 5:10],进行计算,并通过赋值(<-)更新相同的列

m1[, 5:10] <- 4 - m1[, 5:10] + 1

如果有更多元素并且只想将值更改为 1 到 4

i1 <- v1n %in% 1:4
v2 <- v1n
v2[i1] <- 4- v2[i1] + 1

数据

set.seed(24)
v1 <- sample(1:4, 20, replace = TRUE)
set.seed(48)
v1n <- sample(1:9, 20, replace = TRUE)

set.seed(24)
m1 <- matrix(sample(1:4, 20 * 10, replace = TRUE), ncol = 10)
于 2019-11-29T22:32:05.430 回答