首页 > 解决方案 > 为列表中的每个项目修剪字符后的文本 - R

问题描述

我正在尝试删除列表中每个元素之前的文本并包含一个字符(“-”)。

前任-

x = list(c("a-b","b-c","c-d"),c("a-b","e-f"))

所需的输出:

"b" "c" "d"     
"b" "f"

我尝试过使用 and 的各种组合lapplygsub例如

lapply(x,gsub,'.*-','',x)

但这只是返回一个空列表-

[[1]]
[1] ""

[[2]]
[1] ""

并且只使用

gsub(".*-","",x)

返回

"d\")" "f\")"

标签: r

解决方案


这可以通过 for 循环来完成。

val<-list()
for(i in 1:length(x)){
  val[[i]]<-gsub('.*-',"",x[[i]])}
val
[[1]]
[1] "b" "c" "d"

[[2]]
[1] "b" "f"

推荐阅读