我正在研究R编写的有关CVS的调查文件。在分析之前,我想反转4李克特量表上某些项目的编码。将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)