[英]gen new variable conditionally equal old variable in r
I want to conditionally create a new var = old var. 我想有条件地创建一个新的var =旧的var。 My data looks like this: 我的数据如下所示:
id id2
1.1 1 1
1.2 2 2
1.3 3 3
1.4 4 4
1.5 NA 5
5.5 5 6
5.6 6 7
5.7 7 8
5.8 8 9
5.51 NA 10
9.9 9 11
9.10 10 12
9.11 11 13
9.4 NA 14
12.12 12 15
12.2 NA 16
13.13 13 17
13.14 14 18
13.15 15 19
13.16 16 20
How can I create a new var = id2 when id is missing? 缺少ID时,如何创建新的var = id2? If id is not missing, id3 is missing. 如果id不丢失,则id3丢失。
id id2 id3
1.1 1 1
1.2 2 2
1.3 3 3
1.4 4 4
1.5 NA 5 5
5.5 5 6
5.6 6 7
5.7 7 8
5.8 8 9
5.51 NA 10 10
9.9 9 11
9.10 10 12
9.11 11 13
9.4 NA 14 14
12.12 12 15
12.2 NA 16 16
13.13 13 17
13.14 14 18
13.15 15 19
13.16 16 20
Thanks!! 谢谢!!
Assuming that dat
is your data frame, you can do the following based on ifelse
in base R. 假设dat
是您的数据帧,则可以基于base R中的ifelse
执行以下操作。
dat$id3 <- with(dat, ifelse(is.na(id), id2, NA))
Or 要么
dat2 <- transform(dat, id3 = ifelse(is.na(id), id2, NA))
DATA 数据
dat <- read.table(text = " id id2
1.1 1 1
1.2 2 2
1.3 3 3
1.4 4 4
1.5 NA 5
5.5 5 6
5.6 6 7
5.7 7 8
5.8 8 9
5.51 NA 10
9.9 9 11
9.10 10 12
9.11 11 13
9.4 NA 14
12.12 12 15
12.2 NA 16
13.13 13 17
13.14 14 18
13.15 15 19
13.16 16 20",
header = TRUE)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.