加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 超过1个单词分割字符

发布时间:2020-12-14 06:04:20 所属栏目:百科 来源:网络整理
导读:我有以下特征: endvotes - "Yes106No85EH2NT6ES0P1" 我想得到一个像这样的data.framelook 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"
我有以下特征:

endvotes <- "Yes106No85EH2NT6ES0P1"

我想得到一个像这样的data.framelook

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读