我正在寻找一种将单词分成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。
持开放态度答案 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" "@" "@" "$"