[英]Removing character elements from a vector
我试图弄清楚如何从列表中删除多个字符(不是每个字符一个):
- 首先我在带有A2[]<-lapply(A,as.character)
的字符列表A
中转换了我的data.frame(单列A2[]<-lapply(A,as.character)
然后我将它转换为A3<-unlist(A2, recursive = TRUE, use.names = TRUE)
生成一个包含A1
中出现的所有原子成分的向量。
最后,我使用str_remove(A3, ".")
删除,在这种情况下,点。 见下文:
A1 A2 A3 A4 A5 A6 A7 A8 A9 A10
"*" "*" "*" "*" "*" "*" "*" "*" "*" "*"
A11 A12 A13 A14 A15 A16 A17 A18 A19 A20
"*" "=1-" "*C:" "I" "." "." "." "." "." "."
A21 A22 A23 A24 A25 A26 A27 A28 A29 A30
"." "2" "V7b" "." "." "." "." "I" "." "."
问题是将str_remove()
其他元素应用为“*”会丢失。 这是正常的吗?
[1] "" "" "" "" "" "" "" "" "" ""
[11] "" "1-" "C:" "" "" "" "" "" "" ""
[21] "" "" "7b" "" "" "" "" "" "" ""
有没有更好的方法呢? 它只是删除“。” 那列:
12 =1-
13 *C:
14 I
15 .
16 .
17 .
18 .
19 .
20 .
21 .
22 2
23 V7b
24 .
25 .
26 .
27 .
28 I
29 .
30 .
31 .
要得到:
=1-
*C:
I
2
V7b
I
这个时期是一个元字符(见这里 ),所以试着像这样逃避它 -
str_remove(A3, “\\.”)
编辑:
您可以使用str_remove_all
从任意长度的向量中删除多个字符,这将从供应字符向量中删除每个匹配项。 您还可以提供str_remove_all
多个模式以便一次匹配,从而允许您只使用一行代码执行多个操作。
library(stringr)
a <- c("hello. this. is. text","this. is. also. text","here. is. even. more. text")
remove_these <- c("\\.","text")
str_remove_all(a, paste(remove_these, collapse = "|"))
返回:
"hello this is " "this is also " "here is even more "
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.