簡體   English   中英

'R'中的字符串操作,需要從另一個字符串中減去一個字符串,找到列表的A-B

[英]string operations in 'R' , Need to substract one string from other, find the A - B of list

> string1

[[1]]
[1] " DEV U 1"

[[2]]
[1] " DEV U 3G"

[[3]]
[1] " DEV U 4G"

[[4]]
[1] " THY 4M"

[[5]]
[1] " THY  5M"

[[6]]
[1] " THY 6G"

> string2

[[1]]
character(0)

[[2]]
[1] "3G"

[[3]]
[1] "4G"

[[4]]
[1] "4M"

[[5]]
[1] "5M"

[[6]]
[1] "6G"

> str(string1)
List of 6
 $ : chr " DEVE 1"

> str(string2)
List of 6
 $ : chr(0) 
 $ : chr "3G"

我想要一個輸出來獲取字符串,因為我想減去兩個列表以刪除公用。

 [1] " DEV U 1"  

[[2]]
[1] " DEV U"

[[3]]
[1] " DEV U"

[[4]]
[1] " THY"

[[5]]
[1] " THY"

[[6]]
[1] " THY"

如果需要按元素進行此操作,則可以使用mapply

string1 <- list("DEV U 1","DEV U 3G","DEV U 4G","DEV U 3G")
string2 <- list(character(0),"3G","4G","5G")

mapply(function(x,y){
  if(!identical(x,character(0)))
    sub(x,'',y)
  else
    y
  },string2,string1)

#[1] "DEV U 1"  "DEV U "   "DEV U "   "DEV U 3G"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM