假設我有兩個形式為vec1 = c("AAA","AA ","","D")和 的向量vec2 = c("AAA","","D","AA ")。我想更換"AAA" = 1, "AA " = 2, "D" = 3, and finally blanks with zeros
因此,我想再創建兩個向量vec1 and vec2,我將根據這些向量進行進一步分析。的轉換形式Vec1應該是這樣的形式 -v1 = (1,2,0,3) 因為vec2它應該是 -v2 =(1,0,3,2)
uj5u.com熱心網友回復:
使用mapply和match:
> as.vector(mapply(function(x) match(x, c("", "AAA", "AA ", "D")) - 1, vec1))
[1] 1 2 0 3
或者,如果你認為它不是一個向量:
> mapply(function(x) match(x, c("", "AAA", "AA ", "D")) - 1, vec1)
AAA AA D
1 2 0 3
>
uj5u.com熱心網友回復:
我們可以使用帶有命名向量的向量化選項
vec1new <- setNames(c(1, 2, 3), c("AAA", 'AA ', 'D'))[vec1]
vec1new[is.na(vec1new)] <- 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/338782.html
