【问题标题】:How To Add Characters Around Elements如何在元素周围添加字符
【发布时间】:2017-08-08 15:03:57
【问题描述】:

我正在使用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

【问题讨论】:

  • strsplit(x = "A,B", split = ",")
  • 澄清你想要" 'A' , 'B' "还是c("A", "B")
  • .@lanWesley - 我需要这个c("A", "B")。在我测试了strsplit(x = "A,B", split = ",") 的输出在"A","B" 之间没有, 之后,我意识到你为什么问这个问题,因为我将它用作向量。
  • @d.b - 可以应用您的方法以使其不会拆分,而是将"A,B" 更改为"A","B", 很重要。
  • @ChetanArvindPatil,试试unlist(strsplit(x = "A,B", split = ","))

标签: r


【解决方案1】:

使用strsplit:

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

请注意,它返回一个带有向量的列表。该列表的长度为一,因为您要求它拆分一个字符串。如果你要求它拆分两个字符串,你会得到一个长度为 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" 
> 

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

【讨论】:

    猜你喜欢
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-22
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多