【发布时间】:2018-08-22 16:25:29
【问题描述】:
喏,
这是一个可复制的示例。
df <- data.frame("STUDENT"=c(1,2,3,4,5),
"TEST1"=c(6,88,17,5,18),
"TEST2"=c(34,NA,87,88,82),
"TEST3"=c(87,62,13,8,71),
"TEST1NEW"=c(0,1,0,0,0),
"TEST2NEW"=c(0,NA,1,1,1),
"TEST3NEW"=c(1,1,0,0,1)
如果我有包含 STUDENT、TEST1、TEST2、TEST3 的数据框 df,我想制作 TEST1NEW TEST2NEW 和 TEST3NEW 以便当旧变量 TEST 大于或等于 50 并且新 TEST 变量时新变量等于 1当旧的 TEST 变量低于 50 时,应该等于 0。我在下面进行了尝试,但这还不够,而且我相信这可能需要一个循环。
COLUMNS <- c("TEST1", "TEST2", "TEST3")
df[paste0(COLUMNS)] <- replace(df[COLUMNS],df[COLUMNS] < 50, 0 , 1, NA)
【问题讨论】:
-
Ciao @Salman 样本输出在 df 中。非常感谢