2016-11-18 73 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

啊......我总是感到困惑。谢谢。 –

相关问题