[Rcode]构造函数把数据中某项状态的持续时间转化为新的向量

来源:互联网 发布:手机淘宝历史版本 编辑:程序博客网 时间:2024/06/05 15:44
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)

原创粉丝点击