字符串拆分为列表R.

时间:2015-05-27 06:27:40

标签: r

从字符串中提取单词并在R

中创建一个列表
str <- "qwerty keyboard"
result <- strsplit(str,"[[:space:]]")

我得到的是......(下面)

result
[[1]]
[1] "qwerty" "keyboard"

我需要的是......(下面)

result
[[1]]
[1] "qwerty"
[[2]]
[1] "keyboard"

[OR]

result
[[1]]
[1] "qwerty"
[2] "keyboard"

我正在寻找解决方案,如果有人知道请在此处发布您的解决方案。 提前谢谢..

4 个答案:

答案 0 :(得分:9)

尝试:

str <- "qwerty keyboard"
result_1 <- strsplit(str,"[[:space:]]")[[1]][1]
result_2 <- strsplit(str,"[[:space:]]")[[1]][2]
result <- list(result_1,result_2)

或者

as.list(strsplit(str, '\\s+')[[1]])

答案 1 :(得分:0)

as.list(unlist(strsplit(str, '[[:space:]]')))

答案 2 :(得分:0)

作为strsplit()的替代方法,您可以从scan()的结果中列出。

as.list(scan(text=str, what=""))
# Read 2 items
# [[1]]
# [1] "qwerty"
#
# [[2]]
# [1] "keyboard"

答案 3 :(得分:0)

我尝试提出一个一般情况,基于str_split_fixed产生一定数量的结果这一事实。

这从字符串的开头开始起作用,每次都将第一部分添加为新的列表元素。

result <- list()
tosplit <- "qwerty keyboard"
n <- 1

while(tosplit != ""){

  result[[n]] <- str_split_fixed(tosplit, "[ ]", 2)[1]
  tosplit <- str_split_fixed(tosplit, "[ ]", 2)[2]

  n <- n + 1

}

处理时间更长,但是设置更快!