【发布时间】:2021-02-17 18:05:43
【问题描述】:
DATA=data.table(X1=c("Yes", "Maybe", "No", "Yes"), X7a=c("Yes", "Maybe", "No", "Yes"),
X1_A = c("Yes", NA, "No", "Yes"),
X1_B = c(1,NA,0,1))
FIX=c('X1','X7')
我有 'DATA' 包含约 100 列,例如 'X1' 和 'X7a' 我首先希望创建一个向量来存储我希望重新编码的列,例如 FIX=c('X1','X7 ')。然后我希望使用 data.table 用这个规则重新编码 'FIX' 中的列:
例如,对于 X1_A,将 X1 保留原样,但将“Maybe”替换为 NA。
对于 X1_B,例如重新编码 X1,因此 Yes = 1,No = 0,Maybe 为 NA
【问题讨论】:
-
听起来你认为你需要两件事:要修改的向量/变量列表,以及要在它们上运行的函数列表。但是,在您的示例中,没有重叠交互:
FIX[1]具有FUN[1](其中FUN可能是函数列表?),FIX[2]具有FUN[2]。总是这样完美的一对一,还是你曾经对FIX中的多个值运行类似_A的函数? -
@akrun 你有 data.table 解决方案来做这个吗?
标签: r if-statement data.table recode