countDurationTime <- function(x){
# Examples: x <- c('A', 'A', 'A', 'B', 'B', 'C')
#> countDurationTime(x)
# items freq
# 1 A 3
# 2 B 2
# 3 C 1
if (length(x) <=1 ){
return('The length of input vector should be greater than 2.')
} else {
current <- x[1]
frequency <- data.frame(items=NULL, freq=NULL, stringsAsFactors=FALSE)##构造一个空的数据框
for (i in 2:length(x)) {
if (x[i] %in% current) {
current <- c(current, x[i])
} else {
tmp <- data.frame(items=current[1], freq=length(current), stringsAsFactors=FALSE)
frequency <- rbind(frequency, tmp)#注意这里rbind合并起来多个数据
current <- x[i]
}
}
tmp <- data.frame(items=current[1], freq=length(current), stringsAsFactors=FALSE)
frequency <- rbind(frequency, tmp) #针对最后一次合并
}
return(frequency)
}
x<-c(1,1,1,2,3,4,4,4,4,5,5,6,6,6,6)
countDurationTime(x)