3
所以我們可以說我有這個字符串如何從R中的字符串將連續的整數組合在一起?
x <- "1:A 2:A 3:A 5:A 7:A 8:A 9:A"
有R中的功能,讓我準備這個字符串的部分,因此將輸出:
[1] 1-3:A 5:A 7-9:A
所以我們可以說我有這個字符串如何從R中的字符串將連續的整數組合在一起?
x <- "1:A 2:A 3:A 5:A 7:A 8:A 9:A"
有R中的功能,讓我準備這個字符串的部分,因此將輸出:
[1] 1-3:A 5:A 7-9:A
strsplit()
將會把字符串轉換成字符的載體:
> x=strsplit(x, split=" ")[[1]]
[1] "1:A" "2:A" "3:A" "5:A" "7:A" "8:A" "9:A"
從那裏,你可以得到原始數據爲字符:
> x=gsub(":A", "", x)
[1] "1" "2" "3" "5" "7" "8" "9"
然後,您可以轉換爲數字和子集他們,但是你想要的。
#Get the numeric values only
temp = as.integer(unlist(strsplit(gsub(":A", "", x), " ")))
#Split temp into chunks of consecutive integers
#Get range for each chunk and paste them together
#Paste :A at the end
sapply(split(temp, cumsum(c(TRUE, diff(temp) != 1))), function(x)
paste(paste(unique(range(x)), collapse = "-"), ":A", sep = ""))
# 1 2 3
#"1-3:A" "5:A" "7-9:A"