从字符串中提取单词并在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"
我正在寻找解决方案,如果有人知道请在此处发布您的解决方案。 提前谢谢..
答案 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
}
处理时间更长,但是设置更快!