簡體   English   中英

如何編寫嵌套的 IF 和 RAND excel 語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM