【发布时间】:2021-12-08 09:46:30
【问题描述】:
为了便于解释,我将使用一个较小的示例。
我有两个 DF:
DF1: T01 T02 T03 T04 T05
1 15 20 48 25 5
2 12 18 35 30 12
3 13 15 50 60 42
DF2: MEDIAN SD
T01 13 1.24
T02 18 2.05
T03 45 6.64
T04 30 15.45
T05 12 16.04
我想要做的是创建一个循环,为每个变量向 DF1 添加一个虚拟变量,如果 DF1$T01 ≈(几乎等于)DF2$MEDIAN[1],则取值为 1,否则取值为 0,并且然后去T02、T03,直到断线。
直到现在,我还不能创建一个循环(虽然我不太擅长创建循环)来实现这一点。我确实设法为其中一个变量(T01)制作了虚拟变量,但在真正的 DF 中,我有 40 多个变量,所以手工操作根本没有效率。我现在拥有的是:
DF1$dummyt01 <- ifelse(almost.equal(DF1$T01, DF2$MEDIAN[1], tolerance = 2),1,0)
预期结果:
DF1: T01 T02 T03 T04 T05 dummyT01 dummyT02 ... dummyT05
1 15 20 48 25 5 1 1 ... 0
2 12 18 35 30 12 1 1 ... 1
3 13 15 50 60 42 1 0 ... 0
Note: Not a native english speaker. Sorry for any mistakes.
EDIT: Expected Outcome.
【问题讨论】: