假設我有一個向量$(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)
假設我有一個向量$(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)
您可以使用兩種邏輯運算,並添加結果:
v2 <- (v > 0) + (v >= 5)
# [1] 0 1 1 1 1 2
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
這不提供問題的答案。一旦你有足夠的[聲譽](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-can- I-DO-代替)。 - [來自評論](/ review/low-quality-posts/124793) –
您也可以嘗試:
> vs <- as.numeric(ifelse(v==0,0,ifelse(v>0 & v<5,1,2)))
> vs
[1] 0 1 1 1 1 2
軟件相關的問題是題外話在這個網站。至於你的代碼,你可以用'as.numeric'開頭,因爲你的代碼根本不遵循這個函數的語法。 – Tim