将字符串有效地拆分为字符

时间:2017-07-05 06:37:42

标签: r

我正在寻找一种将单词分成char的有效方法(我有一些像“,”这样的特殊字符。)。我已经使用循环和子字符串函数做了一些事情,但它非常慢。

实施例: 代码输入

words <- data.frame(V1 = c("blibli","blabla","\"","]"))
words$V1 <- as.character(words$V1)

输入看起来像:

      V1
1 blibli
2 blabla
3      "
4      ]

我所做的代码:

char_df <- NULL
for(i in 1:nrow(words)){
  print(i)
  temp <- substring(words[i,][1],1:nchar(words[i,]),1:nchar(words[i,]))
  char_df <- rbind(char_df,
                   data.frame(char = temp,
                              idx = 1:nchar(words[i,]) )
  )

}

预期产出:

 char idx
1     b   1
2     l   2
3     i   3
4     b   4
5     l   5
6     i   6
7     b   1
8     l   2
9     a   3
10    b   4
11    l   5
12    a   6
13    "   1
14    ]   1

我对任何技术dplyr,data.table,base R。

持开放态度

2 个答案:

答案 0 :(得分:3)

拆分&#39; V1&#39;在''之后list,我们得到sequence lengths的{​​{1}}并按list创建data.frame unlist

list

答案 1 :(得分:1)

另外,我会添加漂亮漂亮的包stringi

library(stringi)
x<-c("dog","cat","@@$")
unlist(stri_extract_all(x,regex = "."))
[1] "d" "o" "g" "c" "a" "t" "@" "@" "$"