我想在R中創建一個指示變量Z,即如果我有一些事件A,我想讓Z給出1的結果(如果A爲真),如果A是假的,則返回0 。 我試過這個:在R中寫入指示函數
Z=0
if(A==(d>=5 && d<=10))
{
Z=1
}
else
{
Z=0
}
但這不起作用。我也在想我可以嘗試寫一個單獨的函數調用指標:
indicator = function()
任何建議將是真正的幫助,謝謝
我想在R中創建一個指示變量Z,即如果我有一些事件A,我想讓Z給出1的結果(如果A爲真),如果A是假的,則返回0 。 我試過這個:在R中寫入指示函數
Z=0
if(A==(d>=5 && d<=10))
{
Z=1
}
else
{
Z=0
}
但這不起作用。我也在想我可以嘗試寫一個單獨的函數調用指標:
indicator = function()
任何建議將是真正的幫助,謝謝
你可以很容易地寫這樣的事情
indicator<-function(condition) ifelse(condition,1,0)
ifelse
可用於矢量,但它在單個邏輯值(TRUE或FALSE)上可以很好地工作。
謝謝,這有很多幫助! – user3438924
另外1 *(條件)可以做同樣的事情,它更短(雖然有點難以閱讀)。 –
沒有必要定義A,只是測試條件。 另外,請記住&&
和&
在R中有不同用途(請參閱R - boolean operators && and ||瞭解更多詳細信息),所以也許這是您問題的一部分。
if (d>=5 & d<=10)
{
Z <- 1
}
else
{
Z <- 0
}
或者,如其他答案使用ifelse
建議:
z <- ifelse((d>=5 & d<=10), 1, 0)
非常感謝,我現在就開始工作! – user3438924
布爾FALSE
/TRUE
可以強制轉換爲0
或1
,然後乘以:
Indicator<-function(x, min=0, max=Inf)
{
as.numeric(x >= min) * as.numeric(x <= max)
}
可能的複製[R中的Indikator函數](http://stackoverflow.com/questions/20096514/indikator-function-in-r) –