如何在元素周围添加字符

时间:2017-08-08 15:03:58

标签: r

我正在使用R并希望隐藏以下内容:

"A,B"

"A","B" OR 'A','B'

我试过了str_replace(),但那还没有成功。

请建议,谢谢。

更新

我在d.b尝试了建议的答案。虽然它有效,但我没有意识到我应该分享它,我将使用上面的解决方案vector。我需要将data中的值与"A,B"进行拆分,以便将其用作vector

使用strsplit

> data
[1] "A,B"
> test <- strsplit(x = data, split = ",")
> test
[[1]]
[1] "A" "B"
上面test上面的

不会有用,因为我无法将其用于以下内容:

> output_1 <- c(test)
> outputFinalData <- outputFinal[outputFinal$Column %in% output_1,]
上述过程

outputFinalData为空。但是当我这样做时不是空的:

> output_2 <- c("A", "B") 
> outputFinalData <- outputFinal[outputFinal$Column %in% output_2,]

此外,output_1output_2不相同:

> output_1
[[1]]
[1] "Bin_14" "Bin_15"
> output_2
[1] "Bin_14" "Bin_15"
> output_1 == output_2
[1] FALSE FALSE

1 个答案:

答案 0 :(得分:1)

使用strsplit

> data = "A,B"
> strsplit(x=data,split=",")
[[1]]
[1] "A" "B"

请注意,它会返回带有矢量的列表。列表长度为1,因为您要求它拆分一个字符串。如果你要求它拆分两个字符串,你会得到一个长度为2的列表:

> data = c("A,B","Foo,bar")
> strsplit(x=data,split=",")
[[1]]
[1] "A" "B"

[[2]]
[1] "Foo" "bar"

所以,如果你知道你只有一件事要分开,你可以通过获取第一个元素获得部分的向量:

> data = "A,B"
> strsplit(x=data,split=",")[[1]]
[1] "A" "B"

然而,一次性加载拆分并将这些位放在矩阵中可能更有效。只要你可以确定所有部分分成相同数量的部分,那么就像:

> data = c("A,B","Foo,bar","p1,p2")
> do.call(rbind,(strsplit(x=data,split=",")))
     [,1]  [,2] 
[1,] "A"   "B"  
[2,] "Foo" "bar"
[3,] "p1"  "p2" 
> 

获取矩阵列中的两个部分,然后您可以将其添加到数据框中,如果这是您需要的。