简体   繁体   English

在R中使用sapply和char在列表中分割向量

[英]Split vector in a list using sapply and char in R

this is my vector: 这是我的载体:

nms.new<-c("ABEV3.BBAS3", "ABEV3.BBAS3.new", "ABEV3.BRAP4", "ABEV3.BRAP4.new", 
"ABEV3.BRKM5", "ABEV3.BRKM5.new", "ABEV3.CSAN3", "ABEV3.CSAN3.new", 
"ABEV3.CSNA3", "ABEV3.CSNA3.new", "ABEV3.CYRE3", "ABEV3.CYRE3.new", 
"ABEV3.DTEX3", "ABEV3.DTEX3.new", "ABEV3.ELPL4", "ABEV3.ELPL4.new", 
"ABEV3.EVEN3", "ABEV3.EVEN3.new", "ABEV3.FIBR3", "ABEV3.FIBR3.new", 
"ABEV3.GGBR4", "ABEV3.GGBR4.new", "ABEV3.GOAU4", "ABEV3.GOAU4.new", 
"ABEV3.HYPE3", "ABEV3.HYPE3.new", "ABEV3.JBSS3", "ABEV3.JBSS3.new")

I want to split this vector and the result would be something like this: 我想分割此向量,结果将是这样的:

    $`ABEV3.BBAS3`
    [1] "ABEV3.BBAS3"     "ABEV3.BBAS3.new"

    $`ABEV3.BRAP4`
    [1] "ABEV3.BRAP4"     "ABEV3.BRAP4.new"

    $ABEV3.BRKM5
    [1] "ABEV3.BRKM5"     "ABEV3.BRKM5.new"

    $ABEV3.CSAN3
    [1] "ABEV3.CSAN3"     "ABEV3.CSAN3.new"

    $ABEV3.CSNA3
    [1] "ABEV3.CSNA3"     "ABEV3.CSNA3.new"

    $ABEV3.CYRE3
    [1] "ABEV3.CYRE3"     "ABEV3.CYRE3.new"

    $ABEV3.DTEX3
    [1] "ABEV3.DTEX3"     "ABEV3.DTEX3.new"
.
.
.
.
.

I tried this: 我尝试了这个:

nms.new <- nms.new[sapply(nms.new, nchar) > 6]

What am I doing wrong? 我究竟做错了什么? Any help, please? 有什么帮助吗?

Use split and gsub instead 使用splitgsub代替

> split(nms.new, gsub("\\.new$", "", nms.new))
$ABEV3.BBAS3
[1] "ABEV3.BBAS3"     "ABEV3.BBAS3.new"

$ABEV3.BRAP4
[1] "ABEV3.BRAP4"     "ABEV3.BRAP4.new"

$ABEV3.BRKM5
[1] "ABEV3.BRKM5"     "ABEV3.BRKM5.new"

$ABEV3.CSAN3
[1] "ABEV3.CSAN3"     "ABEV3.CSAN3.new"
...

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM