我正在尝试编写R代码,它能够:
- 创建一个新变量
- 只有当METRO=0时,才将该变量填充
- 填充的值是"1"和"2"的随机分配
我尝试了下面的代码,但并没有成功:
iPUMS_2016 <- mutate (iPUMS_2016, metrounk = ifelse(METRO==0,mutate(rand_int=sample.int(n())) ))
我正在尝试编写R代码,它能够:
我尝试了下面的代码,但并没有成功:
iPUMS_2016 <- mutate (iPUMS_2016, metrounk = ifelse(METRO==0,mutate(rand_int=sample.int(n())) ))
ifelse
内部进行第二次mutate
。此外,可以使用if/else
条件,即如果'METRO'中的所有元素都为0,则获取行数上的sample.int
。library(dplyr)
mutate(iPUMS_2016, metrounk = if(all(METRO == 0)) sample.int(n()) else METRO)
mutate(iPUMS_2016, metrounk = ifelse(METRO == 0, sample.int(n()), METRO))
“sample.int(n())”这个语句不太清晰。或者应该是“sample.int(sum(METRO == 0))”。
mutate(iPUMS_2016, metrounk = replace(METRO, METRO == 0,
sample.int(sum(METRO == 0, na.rm = TRUE))))
sample(c("5", "6", n()
,c()
括号没有关闭。 - akrundput
来展示一下例子,因为我无法得到确切的结构。 - akrun