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