我有以下特点:
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/