如何使用随机选择创建新的VAR?
使用dplyr,我想创建一个新变量new_regsiege
,具有以下条件:
对于每行,如果regsiege
==“ xx”,则“ xx” > 0然后new_regsiege = regsiege
如果regsiege
==“ xx”和nbeta_regxx
= 0,然后new_regsiege是在不是null的regsiege中随机选择的Regsiege之一。
这是我的例子:
mydf <- data.frame(
regsiege = c("11","24","93"),
nbeta_reg11 = c(0,1,0),
nbeta_reg24 = c(1,1,0),
nbeta_reg93 = c(1,1,1)
)
# Desired output
regsiege nbeta_reg11 nbeta_reg24 nbeta_reg93 new_regsiege
11 0 1 1 93 (could be also "24")
24 1 1 1 24
93 0 0 1 93
我开始这样开始:
mydf %>%
rowwise()
mutate(
new_regsiege = if_else(...
)
With dplyr, I would like to create a new variable new_regsiege
with the following conditions:
For each line and "XX" if regsiege
=="XX" and nbeta_regXX
>0 then new_regsiege=regsiege
if regsiege
=="XX" and nbeta_regXX
=0 then new_regsiege is one of the regsiege randomly chosen among those which are not null.
Here's my example :
mydf <- data.frame(
regsiege = c("11","24","93"),
nbeta_reg11 = c(0,1,0),
nbeta_reg24 = c(1,1,0),
nbeta_reg93 = c(1,1,1)
)
# Desired output
regsiege nbeta_reg11 nbeta_reg24 nbeta_reg93 new_regsiege
11 0 1 1 93 (could be also "24")
24 1 1 1 24
93 0 0 1 93
I started like this :
mydf %>%
rowwise()
mutate(
new_regsiege = if_else(...
)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你可以尝试
You could try
最简单的解决方案将使用一个循环:
The simplest solution would use a loop: