[英]How to write a nested IF and RAND excel statement
我正在嘗試在 R 中生成一個包含隨機二進制 1 和 0 行的列。
在 excel 中,我可以將其寫在一個新列中,如if(rand()< $A$1,1,0)
。
其中 1 澳元 = 0.1。 因此,如果任何隨機數小於 0.1,它將返回 1。因此,結果將打印一列,其中包含 1 和 0 的隨機行。
在R中,我寫下了
data$binary <- ifelse(runif(1,0,1)<0.1,1,0)
我得到的只是 1 的值。
如果生成的隨機數小於 0.1,則返回 1,否則返回 0。
非常感謝您的幫助!
使用runif
您可以使用
n <- 10
+(runif(n,0,1) < 0.1)
由於+(runif(n,0,1) < 0.1)
對於n
10% 平均而言為 1,您還可以使用帶有概率參數的sample
,這會給您相同的結果。
sample(c(0, 1), n, replace = TRUE, prob = c(0.9, 0.1))
請注意, ifelse()
是向量化運算符,因此輸出保持條件的相同維度。 在您的代碼中, runif(1,0,1)
是單個值,因此在使用ifelse()
時給出單值輸出。
也許你應該像下面一樣嘗試
df$binary <- ifelse(df$A<0.1,1,0)
以至於
> df
A binary
1 0.2875775 0
2 0.7883051 0
3 0.4089769 0
4 0.8830174 0
5 0.9404673 0
6 0.0455565 1
7 0.5281055 0
8 0.8924190 0
9 0.5514350 0
10 0.4566147 0
數據
set.seed(123)
df <- data.frame(A = runif(10,0,1))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.