我有一个数据框与大量的变量。这些变量的子集名称中包含单个数字(例如x1_v
和x2_v
),我想为任意大小的子集重新编码这些变量的值。我使用for循环尝试了以下内容,但它不记录任何内容。如何通过字符串(变量)和重新编码值进行循环?
library(car)
library(magrittr)
# Sample df
x1_v <- seq(1:5)
x2_v <- rep(5,5)
fun <- c("a","b","c","r","q")
data <- data.frame(x1_v, x2_v, fun)
# Loop
for (i in 1:2){
paste0("data$x", i, "_v") %>%
assign(paste0("data$x", i, "_v") %>%
recode("c(0, 5) = NA"))
}
我知道通过使用循环和assign()
这违反了几乎所有的R协议,但我想了解
- 为什么这不起作用
- 我怎么可能会使用类似申请解决此问题。
我认为制作一个列表是有道理的,但我希望将所有数据保留在数据框架类中。
'库(车)'我猜的引用'重新编码()' – thelatemail
这可能有助于提供你想要什么样的输出是一个例子? –