![](/img/trans.png)
[英]How to add a variable and assign a value based on the value of another variable
[英]How to make a variable conditional to another variable and assign a value based on probability
我正在嘗試為 A、B 和 C 生成二進制變量。1 表示您屬於該組。 現在,有了這些信息,我想創建另一個基於稱為 X 的概率的二元變量,它根據前面的組分配 1 和 0。 我想弄清楚這個條件結構的正確方法是什么。 下面列出的都是假設值,這只是一個數據生成模擬練習。
A,B,C個二進制指標。
A <- c(rep(1,195), rep(0,805))
B <- c(rep(1,90), rep(0,910))
C <- c(rep(1,715), rep(0,285))
創建 X 二進制指標,我一直在追求 case_when,但出了點問題,我可能沒有理解 case_when 的能力,因為我在其中嵌入了另一個 function。 所以,我知道這可能是不正確的,但是,希望它能說明我的目標是什么。
mutate(english == case_when(A == 1 ~ rbinom(250,1,.40),
B == 1 ~ rbinom(250,1,.90),
C == 1 ~ rbinom(500,1,.10))
我知道我也可以使用 ifelse function 但我不太確定如何根據我的問題進行這項工作 - 仍在努力思考。 謝謝!
要生成具有獨特種族的個人列表,然后隨機分配英語變量,您可以使用
df <- tibble(race = c(rep("black", 195), rep("hispanic", 90), rep("white", 715)),
english = case_when(race == "black" ~ rbinom(1000, 1, 0.98),
race == "hispanic" ~ rbinom(1000, 1, 0.40),
race == "white" ~ rbinom(1000, 1, 0.98)))
根本不需要二進制列。 如果你還想要它們,你可以試試
df <- tibble(row_number = 1:1000,
temp = 1,
race = c(rep("black", 195), rep("hispanic", 90), rep("white", 715)),
english = case_when(race == "black" ~ rbinom(1000, 1, 0.98),
race == "hispanic" ~ rbinom(1000, 1, 0.40),
race == "white" ~ rbinom(1000, 1, 0.98))) %>%
pivot_wider(names_from =race, values_from = temp, values_fill = 0)
如果你有另一個向量
other_var <- 1000:1
你想附加為一列,那么你可以使用
df <- df %>% bind_cols(other = other_var)
要么
df$other <- other_var
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.