【发布时间】:2021-10-10 21:46:55
【问题描述】:
我正在尝试循环以下代码。我需要这些确切的变量名称和条件。我正在尝试创建 83 个“self”变量和 83 个“home”变量。我想学习如何循环这个而不是Ctrl+F,并用系列中的新A(i+1)_替换所有A(i)_,然后复制和粘贴。
我已经发布了前 3 个系列,但是我创建了 83 个,其中一些数字被跳过了。最困难的部分(对我来说)是在循环中跳过"A13_""A15_"、"A18_"、"A36_"、"A42_""A43_"、"A61_"、"A65_" 和"A72_"。非常感谢任何帮助!
HYM <- mutate(HYM,A1_self = case_when( (HYM$A1_1 == 1 & is.na(HYM$A1_2) == TRUE & is.na(HYM$A1_3) == TRUE & is.na(HYM$A1_4) == TRUE) | (HYM$A1_1 == 1 & HYM$A1_2 == 1 & is.na(HYM$A1_3) == TRUE & is.na(HYM$A1_4) == TRUE) | (HYM$A1_1 == 1 & HYM$A1_3 == 1 & is.na(HYM$A1_2) == TRUE & is.na(HYM$A1_4) == TRUE) | (HYM$A1_1 == 1 & HYM$A1_4 == 1 & is.na(HYM$A1_2) == TRUE & is.na(HYM$A1_3) == TRUE) ~ 1, (HYM$A1_3 == 1 & is.na(HYM$A1_1) == TRUE & is.na(HYM$A1_2) == TRUE & is.na(HYM$A1_4) == TRUE) | (HYM$A1_3 == 1 & HYM$A1_4 == 1 & is.na(HYM$A1_1) == TRUE & is.na(HYM$A1_2) == TRUE) | (HYM$A1_2 == 1 & HYM$A1_3 == 1 & is.na(HYM$A1_1) == TRUE & is.na(HYM$A1_4) == TRUE) | (HYM$A1_2 == 1 & is.na(HYM$A1_1) == TRUE & is.na(HYM$A1_3) == TRUE & is.na(HYM$A1_4) == TRUE) ~ 0, (HYM$A1_4 == 1 & is.na(HYM$A1_1) == TRUE & is.na(HYM$A1_2) == TRUE & is.na(HYM$A1_3) == TRUE) | (HYM$A1_2 == 1 & HYM$A1_4 == 1 & is.na(HYM$A1_1) == TRUE & is.na(HYM$A1_3) == TRUE) ~ -77, (is.na(HYM$A1_1) == TRUE & is.na(HYM$A1_2) == TRUE & is.na(HYM$A1_3) == TRUE & is.na(HYM$A1_4) == TRUE) ~ -99 ))
HYM <- mutate(HYM, A1_home = case_when( (HYM$A1_2 == 1 & is.na(HYM$A1_1) == TRUE & is.na(HYM$A1_3) == TRUE & is.na(HYM$A1_4) == TRUE) | (HYM$A1_1 == 1 & HYM$A1_2 == 1 & is.na(HYM$A1_3) == TRUE & is.na(HYM$A1_4) == TRUE) | (HYM$A1_2 == 1 & HYM$A1_3 == 1 & is.na(HYM$A1_1) == TRUE & is.na(HYM$A1_4) == TRUE) | (HYM$A1_2 == 1 & HYM$A1_4 == 1 & is.na(HYM$A1_1) == TRUE & is.na(HYM$A1_3) == TRUE) ~ 1, (HYM$A1_3 == 1 & is.na(HYM$A1_1) == TRUE & is.na(HYM$A1_2) == TRUE & is.na(HYM$A1_4) == TRUE) | (HYM$A1_1 == 1 & HYM$A1_3 == 1 & is.na(HYM$A1_2) == TRUE & is.na(HYM$A1_4) == TRUE) ~ 0, (HYM$A1_4 == 1 & is.na(HYM$A1_1) == TRUE & is.na(HYM$A1_2) == TRUE & is.na(HYM$A1_3) == TRUE) | (HYM$A1_3 == 1 & HYM$A1_4 == 1 & is.na(HYM$A1_1) == TRUE & is.na(HYM$A1_2) == TRUE) | (HYM$A1_1 == 1 & HYM$A1_4 == 1 & is.na(HYM$A1_2) == TRUE & is.na(HYM$A1_3) == TRUE) ~ -77, (is.na(HYM$A1_1) == TRUE & is.na(HYM$A1_2) == TRUE & is.na(HYM$A1_3) == TRUE & is.na(HYM$A1_4) == TRUE) | (HYM$A1_1 == 1 & is.na(HYM$A1_2) == TRUE & is.na(HYM$A1_3) == TRUE & is.na(HYM$A1_4) == TRUE) ~ -99 ))
HYM <- mutate(HYM,A2_self = case_when( (HYM$A2_1 == 1 & is.na(HYM$A2_2) == TRUE & is.na(HYM$A2_3) == TRUE & is.na(HYM$A2_4) == TRUE) | (HYM$A2_1 == 1 & HYM$A2_2 == 1 & is.na(HYM$A2_3) == TRUE & is.na(HYM$A2_4) == TRUE) | (HYM$A2_1 == 1 & HYM$A2_3 == 1 & is.na(HYM$A2_2) == TRUE & is.na(HYM$A2_4) == TRUE) | (HYM$A2_1 == 1 & HYM$A2_4 == 1 & is.na(HYM$A2_2) == TRUE & is.na(HYM$A2_3) == TRUE) ~ 1, (HYM$A2_3 == 1 & is.na(HYM$A2_1) == TRUE & is.na(HYM$A2_2) == TRUE & is.na(HYM$A2_4) == TRUE) | (HYM$A2_3 == 1 & HYM$A2_4 == 1 & is.na(HYM$A2_1) == TRUE & is.na(HYM$A2_2) == TRUE) | (HYM$A2_2 == 1 & HYM$A2_3 == 1 & is.na(HYM$A2_1) == TRUE & is.na(HYM$A2_4) == TRUE) | (HYM$A2_2 == 1 & is.na(HYM$A2_1) == TRUE & is.na(HYM$A2_3) == TRUE & is.na(HYM$A2_4) == TRUE) ~ 0, (HYM$A2_4 == 1 & is.na(HYM$A2_1) == TRUE & is.na(HYM$A2_2) == TRUE & is.na(HYM$A2_3) == TRUE) | (HYM$A2_2 == 1 & HYM$A2_4 == 1 & is.na(HYM$A2_1) == TRUE & is.na(HYM$A2_3) == TRUE) ~ -77, (is.na(HYM$A2_1) == TRUE & is.na(HYM$A2_2) == TRUE & is.na(HYM$A2_3) == TRUE & is.na(HYM$A2_4) == TRUE) ~ -99 ))
HYM <- mutate(HYM, A2_home = case_when( (HYM$A2_2 == 1 & is.na(HYM$A2_1) == TRUE & is.na(HYM$A2_3) == TRUE & is.na(HYM$A2_4) == TRUE) | (HYM$A2_1 == 1 & HYM$A2_2 == 1 & is.na(HYM$A2_3) == TRUE & is.na(HYM$A2_4) == TRUE) | (HYM$A2_2 == 1 & HYM$A2_3 == 1 & is.na(HYM$A2_1) == TRUE & is.na(HYM$A2_4) == TRUE) | (HYM$A2_2 == 1 & HYM$A2_4 == 1 & is.na(HYM$A2_1) == TRUE & is.na(HYM$A2_3) == TRUE) ~ 1, (HYM$A2_3 == 1 & is.na(HYM$A2_1) == TRUE & is.na(HYM$A2_2) == TRUE & is.na(HYM$A2_4) == TRUE) | (HYM$A2_1 == 1 & HYM$A2_3 == 1 & is.na(HYM$A2_2) == TRUE & is.na(HYM$A2_4) == TRUE) ~ 0, (HYM$A2_4 == 1 & is.na(HYM$A2_1) == TRUE & is.na(HYM$A2_2) == TRUE & is.na(HYM$A2_3) == TRUE) | (HYM$A2_3 == 1 & HYM$A2_4 == 1 & is.na(HYM$A2_1) == TRUE & is.na(HYM$A2_2) == TRUE) | (HYM$A2_1 == 1 & HYM$A2_4 == 1 & is.na(HYM$A2_2) == TRUE & is.na(HYM$A2_3) == TRUE) ~ -77, (is.na(HYM$A2_1) == TRUE & is.na(HYM$A2_2) == TRUE & is.na(HYM$A2_3) == TRUE & is.na(HYM$A2_4) == TRUE) | (HYM$A2_1 == 1 & is.na(HYM$A2_2) == TRUE & is.na(HYM$A2_3) == TRUE & is.na(HYM$A2_4) == TRUE) ~ -99 ))
HYM <- mutate(HYM,A3_self = case_when( (HYM$A3_1 == 1 & is.na(HYM$A3_2) == TRUE & is.na(HYM$A3_3) == TRUE & is.na(HYM$A3_4) == TRUE) | (HYM$A3_1 == 1 & HYM$A3_2 == 1 & is.na(HYM$A3_3) == TRUE & is.na(HYM$A3_4) == TRUE) | (HYM$A3_1 == 1 & HYM$A3_3 == 1 & is.na(HYM$A3_2) == TRUE & is.na(HYM$A3_4) == TRUE) | (HYM$A3_1 == 1 & HYM$A3_4 == 1 & is.na(HYM$A3_2) == TRUE & is.na(HYM$A3_3) == TRUE) ~ 1, (HYM$A3_3 == 1 & is.na(HYM$A3_1) == TRUE & is.na(HYM$A3_2) == TRUE & is.na(HYM$A3_4) == TRUE) | (HYM$A3_3 == 1 & HYM$A3_4 == 1 & is.na(HYM$A3_1) == TRUE & is.na(HYM$A3_2) == TRUE) | (HYM$A3_2 == 1 & HYM$A3_3 == 1 & is.na(HYM$A3_1) == TRUE & is.na(HYM$A3_4) == TRUE) | (HYM$A3_2 == 1 & is.na(HYM$A3_1) == TRUE & is.na(HYM$A3_3) == TRUE & is.na(HYM$A3_4) == TRUE) ~ 0, (HYM$A3_4 == 1 & is.na(HYM$A3_1) == TRUE & is.na(HYM$A3_2) == TRUE & is.na(HYM$A3_3) == TRUE) | (HYM$A3_2 == 1 & HYM$A3_4 == 1 & is.na(HYM$A3_1) == TRUE & is.na(HYM$A3_3) == TRUE) ~ -77, (is.na(HYM$A3_1) == TRUE & is.na(HYM$A3_2) == TRUE & is.na(HYM$A3_3) == TRUE & is.na(HYM$A3_4) == TRUE) ~ -99 ))
HYM <- mutate(HYM, A3_home = case_when( (HYM$A3_2 == 1 & is.na(HYM$A3_1) == TRUE & is.na(HYM$A3_3) == TRUE & is.na(HYM$A3_4) == TRUE) | (HYM$A3_1 == 1 & HYM$A3_2 == 1 & is.na(HYM$A3_3) == TRUE & is.na(HYM$A3_4) == TRUE) | (HYM$A3_2 == 1 & HYM$A3_3 == 1 & is.na(HYM$A3_1) == TRUE & is.na(HYM$A3_4) == TRUE) | (HYM$A3_2 == 1 & HYM$A3_4 == 1 & is.na(HYM$A3_1) == TRUE & is.na(HYM$A3_3) == TRUE) ~ 1, (HYM$A3_3 == 1 & is.na(HYM$A3_1) == TRUE & is.na(HYM$A3_2) == TRUE & is.na(HYM$A3_4) == TRUE) | (HYM$A3_1 == 1 & HYM$A3_3 == 1 & is.na(HYM$A3_2) == TRUE & is.na(HYM$A3_4) == TRUE) ~ 0, (HYM$A3_4 == 1 & is.na(HYM$A3_1) == TRUE & is.na(HYM$A3_2) == TRUE & is.na(HYM$A3_3) == TRUE) | (HYM$A3_3 == 1 & HYM$A3_4 == 1 & is.na(HYM$A3_1) == TRUE & is.na(HYM$A3_2) == TRUE) | (HYM$A3_1 == 1 & HYM$A3_4 == 1 & is.na(HYM$A3_2) == TRUE & is.na(HYM$A3_3) == TRUE) ~ -77, (is.na(HYM$A3_1) == TRUE & is.na(HYM$A3_2) == TRUE & is.na(HYM$A3_3) == TRUE & is.na(HYM$A3_4) == TRUE) | (HYM$A3_1 == 1 & is.na(HYM$A3_2) == TRUE & is.na(HYM$A3_3) == TRUE & is.na(HYM$A3_4) == TRUE) ~ -99 ))
ID A1_1 A1_2 A1_3 A1_4 A2_1 A2_2 A2_3 A2_4 A3_1 A3_2
<chr> <dbl+> <dbl+lbl> <dbl+lb> <dbl+> <dbl+lb> <dbl+lbl> <dbl+l> <dbl> <dbl> <dbl>
1 1234. NA NA 1 [No] NA NA NA 1 [No] NA NA NA
2 2345. NA 1 [Yes (… NA NA NA NA 1 [No] NA NA NA
3 3456. NA 1 [Yes (… NA NA NA 1 [Yes … NA NA NA NA
5 4567. NA NA 1 [No] NA 1 [Yes… NA NA NA NA NA
6 5678. NA NA 1 [No] NA NA NA 1 [No] NA NA NA
7 9876. NA NA 1 [No] NA NA NA 1 [No] NA NA NA
8 6789. NA NA 1 [No] NA NA NA 1 [No] NA NA NA
9 8765. NA NA NA NA NA NA NA NA NA NA
10 1234. NA NA
11 1234. NA NA NA NA NA NA NA NA NA
12 1234. NA NA NA NA NA NA NA NA NA
13 1234. 1 [Yes… 1 [Yes… NA NA 1 [Yes… 1 [Yes… NA NA 1 [Yes…
14 1234. NA NA NA NA NA NA NA NA NA
15 1234. NA NA NA 1 [Doe… NA NA NA 1 [Doe… NA
16 1234. NA 1 [Yes… NA NA NA NA 1 [No] NA NA
17 1234. NA NA 1 [No] NA 1 [Yes… NA NA NA NA
18 1234. 1 [Yes… NA NA NA NA NA NA 1 [Doe… NA
19 1234. 1 [Yes… NA NA NA NA NA 1 [No] NA 1 [Yes…
20 1234. 1 [Yes… NA NA NA 1 [Yes… NA NA NA NA
【问题讨论】:
-
请您提供示例数据以使您的问题可重现吗?
-
我是这个网站的新手,如何上传示例数据?
-
请输入
dput(head(HYM, 30)),复制structure(...)-输出,编辑您的问题并将structure(...)放在那里。 -
这看起来像是一种反模式,我相信有一种更简单的方法可以帮助避免手动粘贴和潜在的拼写错误。你能描述一下逻辑是什么吗?