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