我有一個數據框與大量的變量。這些變量的子集名稱中包含單個數字(例如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
這可能有助於提供你想要什麼樣的輸出是一個例子? –