R Apply() function on specific dataframe columns

后端 未结 4 1362
有刺的猬
有刺的猬 2020-11-28 03:00

I want to use the apply function on a dataframe, but only apply the function to the last 5 columns.

B<- by(wifi,(wifi$Room),FUN=function(y){apply(y, 2, A)         


        
4条回答
  •  广开言路
    2020-11-28 03:12

    Using an example data.frame and example function (just +1 to all values)

    A <- function(x) x + 1
    wifi <- data.frame(replicate(9,1:4))
    wifi
    
    #  X1 X2 X3 X4 X5 X6 X7 X8 X9
    #1  1  1  1  1  1  1  1  1  1
    #2  2  2  2  2  2  2  2  2  2
    #3  3  3  3  3  3  3  3  3  3
    #4  4  4  4  4  4  4  4  4  4
    
    data.frame(wifi[1:3], apply(wifi[4:9],2, A) )
    #or
    cbind(wifi[1:3], apply(wifi[4:9],2, A) )
    
    #  X1 X2 X3 X4 X5 X6 X7 X8 X9
    #1  1  1  1  2  2  2  2  2  2
    #2  2  2  2  3  3  3  3  3  3
    #3  3  3  3  4  4  4  4  4  4
    #4  4  4  4  5  5  5  5  5  5
    

    Or even:

    data.frame(wifi[1:3], lapply(wifi[4:9], A) )
    #or
    cbind(wifi[1:3], lapply(wifi[4:9], A) )
    
    #  X1 X2 X3 X4 X5 X6 X7 X8 X9
    #1  1  1  1  2  2  2  2  2  2
    #2  2  2  2  3  3  3  3  3  3
    #3  3  3  3  4  4  4  4  4  4
    #4  4  4  4  5  5  5  5  5  5
    

提交回复
热议问题