2016-11-22 52 views
0

假設我有一個向量$(0,1,2,3,4,5)$。 我想將它轉變成執行以下操作:如果在原來的矢量值是:如何使用as.numeric將隨機數的向量轉換爲0,1,2的向量?

$ = 0 \ RIGHTARROW 0 $

$ > 0 $但$ < 5 \ RIGHTARROW 1 $

$ = 5 \ RIGHTARROW 2 $

我想:

v <- c(0,1,2,3,4,5) 
v <- as.numeric(v=0, v>0 & v<5, v=5) 
+1

軟件相關的問題是題外話在這個網站。至於你的代碼,你可以用'as.numeric'開頭,因爲你的代碼根本不遵循這個函數的語法。 – Tim

回答

5

您可以使用兩種邏輯運算,並添加結果:

v2 <- (v > 0) + (v >= 5) 
# [1] 0 1 1 1 1 2 
3
v <- c(0,1,2,3,4,5) 
v[v>0 & v<5] <- 1 
v 
#[1] 0 1 1 1 1 5 
v[v == 5] <- 2 
v 
[1] 0 1 1 1 1 2 
+0

這不提供問題的答案。一旦你有足夠的[聲譽](http://stats.stackexchange.com/help/whats-reputation),你將可以[對任何帖子發表評論](http://stats.stackexchange.com/help/privileges/評論);相反,[提供不需要提問者澄清的答案](http://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [來自評論](/ review/low-quality-posts/124793) –

1

您也可以嘗試:

> vs <- as.numeric(ifelse(v==0,0,ifelse(v>0 & v<5,1,2))) 
> vs 
[1] 0 1 1 1 1 2 
相關問題