我具有由正態分佈50個元素如何由0中的R取代在矢量中的所有負值
vector<-c(rnorm(50))
我想改變爲0和所有負值正值爲1
隨機生成的矢量我用這個功能,但是索引然後我不跟50個元素
vector[ vector< 0 ] <- 1
vector[ vector> 0 ] <- 0
我應該如何繼續獲得矢量?
我具有由正態分佈50個元素如何由0中的R取代在矢量中的所有負值
vector<-c(rnorm(50))
我想改變爲0和所有負值正值爲1
隨機生成的矢量我用這個功能,但是索引然後我不跟50個元素
vector[ vector< 0 ] <- 1
vector[ vector> 0 ] <- 0
我應該如何繼續獲得矢量?
生成一些數據
x = rnorm(50)
然後要麼
x = ifelse(x > 0, 1, 0)
或
x[x < 0] = 0
x[x > 0] = 1
甚至更好
as.numeric (x>0)
然而,由於標準正態分佈是對稱的0,爲何不直接通過
模擬sample(0:1, 50, replace=TRUE)
'as.numeric(x> 0)'應該是最簡單的一個IMO –
的問題是,在第一個查詢您替換所有值由值較大的零 所以關鍵是要切換
vector[ vector< 0 ] <- 1
vector[ vector> 0 ] <- 0
到
vector[ vector> 0 ] <- 0
vector[ vector< 0 ] <- 1
請注意,您也略小0偏向0但這應該只是邊際化
爲什麼不簡單'抽樣(0:1,50,替換= T)'? –