我有一系列 NAMEx 形式的变量,我想对其应用相同的重新编码方案。 (在 stata 中,我会使用“重新编码名称*(重新编码规范)”来做到这一点
我倾向于使用带有列名列表的 for 循环,但这似乎不是 R 中可接受的方法(并且会产生错误)。我还尝试使用包 car 中的重新编码语句,但这产生了不同的错误。
在 R 中执行此操作的方法涉及使用 lapply() 函数,我尝试了以下方法:
v1 <- c(1,5,7,9)
v2 <- c(2,7,9,6)
v3 <- c(8,3,4,7)
df <- data.frame(v1,v2,v3)
df
namelist=c("df$v1","df$v2","df$v3")
namelist
myrecode <- function(x) {
case_when(x==7 ~ 77,
x==9 ~ 99,
.default = )}
lapply(namelist,myrecode,data=df)
FUN(X[[i]], ...) 中的错误: 未使用的参数 (data = list(c(1, 5, 7, 9), c(2, 7, 9, 6), c(8, 3, 4, 7)))
请注意,我在某些地方需要根据第二个变量 (y) 的值来替换一个变量 (x) 的值,并且我希望能够使用如下所示的函数来做到这一点:
myrecode <- function(x,y) {x[y==27] = 2
这里有什么特别需要我知道的吗?
library(dplyr)
df |>
mutate(across(v1:v3, \(x) case_match(x, 7 ~ 77, 9 ~ 99, .default = x)))