对于循环,r在400万条记录中持续缓慢

0 r

我是r的初学者我必须在TIS列中找到一个数字范围并更新另一列.我正在使用下面的代码,但它非常慢.有关如何改进它的任何想法?

table name : data

    for (i in 1:nrow(data)) {
    if (data$TIS[i] > 100)
    data$test[i] <- ">100" 
    else if (data$TIS[i] > 60 & data$TIS[i] <=100)  
    data$test[i] <- "61-100" 
    else if (data$TIS[i] > 48 & data$TIS[i] <=60) 
    data$test[i] <- "49-60" 
    else if (data$TIS[i] > 36 & data$TIS[i] <=48) 
    data$test[i] <- "37-48" 
    else if (data$TIS[i] > 24 & data$TIS[i] <=36) 
    data$test[i] <- "25-36" 
    else if (data$TIS[i] > 12 & data$TIS[i] <=24) 
    data$test[i] <- "13-24" 
    else if (data$TIS[i] > 3 & data$TIS[i] <=12) 
    data$test[i] <- "4-12" 
    else if (data$TIS[i] > -1 & data$TIS[i] <=3) 
    data$test[i] <- "0-3" 
    else 
    data$test[i] <- "-1" }
Run Code Online (Sandbox Code Playgroud)

leb*_*nok 5

用途cut:

 data$test <- cut(data$TIS, breaks=c(0,3,12,24,36,48,100,Inf))
Run Code Online (Sandbox Code Playgroud)

(您可能需要修改上面的中断以获得您想要的内容)