2016-11-18 72 views
-1

gsub需要字符串參數。但我想處理整個字符串替換數組。我的示例代碼如下,但不工作R:如何將值作爲參數傳遞給gsub

pairs <- c(c("a", "b"), c("e", "f")) 
gsub("a", "b", "age") 
#[1] "bge" 

p1 <- pairs[1][1] 
p1 
#[1] "a" 

p2 <- pairs[1][2] 

gsub(p1, p2, "age") 
#[1] NA 

我敢肯定,這是關於向量和字符串之間的區別根本的東西,但我不知道如何解決它。道歉無疑是一個重複的問題,但我搜索了很多虛假的線索,試圖谷歌它

因此,從下面的評論和回答我現在明白了: 沒有真正得到「一切都是矢量」我正在製造一個虛假的心理模型,c(「a」,「b」)將角色轉換爲角色的矢量。 (c(「a」,「b」),c(「e」,「f」))正在創建一個向量向量 但c(「a」,「b」)實際上是將2個單元向量組合成單個2元向量並且通過擴展c(c(「a」,「b」),c(「e」,「f」))實際上將兩個2元向量組合爲4元素矢量。所以矩陣確實是我本來應該與之合作的。 謝謝你們!

+1

也許'pairs'應該是一個矩陣? 'pair < - cbind(c(「a」,「b」),c(「e」,「f」))'然後你可以使用矩陣子集,'pairs [1,1];對[1,2]'。 – Roland

回答

0

雖然您有pairs作爲字符向量的向量。最後,如果你檢查pairs它給作爲

pairs 
#[1] "a" "b" "e" "f" 

所以,你可以用它們與單一索引

p1 <- pairs[1] 
p2 <- pairs[2] 

gsub(p1, p2, "age") 
#[1] "bge" 
+0

OP不會創建「數組」。矢量不是數組,因爲它缺少維度屬性。 – Roland

+0

啊......我總是感到困惑。謝謝。 –

相關問題