regex - 用 1 个以上的单词拆分字符

标签 regex string r split

我有以下特点:

endvotes <- "Yes106No85EH2NT6ES0P1"

我想要一个 data.frame看起来像这样
    Yes    No   EH   NT   ES  P
    106    85   2    6    0   1

我知道如何拆分每一个,例如这样:
yes <- unlist(str_split(end_votes, "\\No"))[1]
yes <- as.integer(unlist(str_split(yes, "Yes"))[2])

yes
[1] 106

我想一种可能性是按位置分割,但数字(一位、两位或三位)并不总是相同的,因此我想按答案(是、否等)进行分割。当然,我可以对每个答案都这样做(如上所述),但我相信有更优雅的方法。
谁能告诉我这是如何做得很好?
谢谢

最佳答案

endvotes <- "Yes106No85EH2NT6ES0P1"

names <- strsplit(endvotes, "[[:digit:]]+")[[1]]
numbers <- strsplit(endvotes, "[[:alpha:]]+")[[1]][-1]

setNames(as.data.frame(t(as.numeric(numbers))), names)
#  Yes No EH NT ES P
#1 106 85  2  6  0 1

关于regex - 用 1 个以上的单词拆分字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23127944/

相关文章:

regex - 连续替换 CSV 文件中的空值

regex - 美国州正则表达式,区分大小写

解析圣经书籍字符串的 PHP 问题

Java 从哈希码重新创建字符串

java - "error: variable keyboard is already defined in method main(String [])"

r - 编辑数据表,但当我们移动到另一个页面时,更改就会消失

python - 使用正则表达式删除文档字符串的有效方法

r - 如何将多个 "nodes"文本粘贴到一个文本中?

r 错误 : Don't know how to add o to a plot

python - Django:命名 Url/相同的正则表达式,不同的名称