从R中的strsplit删除空白

RUs*_*ser 7 r

> dc1
  V1                V2
1 20140211-0100     |Box
2 20140211-1782     |Office|Ball
3 20140211-1783     |Office
4 20140211-1784     |Office
5 20140221-0756     |Box
6 20140203-0418     |Box
> strsplit(as.character(dc1[,2]),"^\\|")
[[1]]
[1] ""    "Box"


[[2]]
[1] ""             "Office" "Ball"


[[3]]
[1] ""             "Office"


[[4]]
[1] ""             "Office"


[[5]]
[1] ""    "Box"


[[6]]
[1] ""    "Box"  
Run Code Online (Sandbox Code Playgroud)

如何从结果中删除空白("")strsplit.结果应如下所示:

[[1]]
[1] "Box"
Run Code Online (Sandbox Code Playgroud)
[[2]]
[1] "Office"    "Ball"
Run Code Online (Sandbox Code Playgroud)

jdh*_*son 8

您可以lapply在列表中查看使用情况.我更改了您的定义strsplit以匹配您的预期输出.

dc1 <- read.table(text = 'V1                V2
1 20140211-0100     |Box
2 20140211-1782     |Office|Ball
3 20140211-1783     |Office
4 20140211-1784     |Office
5 20140221-0756     |Box
6 20140203-0418     |Box', header = TRUE)

out <- strsplit(as.character(dc1[,2]),"\\|")

> lapply(out, function(x){x[!x ==""]})
[[1]]
[1] "Box"

[[2]]
[1] "Office" "Ball"  

[[3]]
[1] "Office"

[[4]]
[1] "Office"

[[5]]
[1] "Box"

[[6]]
[1] "Box"
Run Code Online (Sandbox Code Playgroud)