在r中的lapply循环内设置级别

Mis*_*sha 1 r lapply

我试图从尾随空格中清除数据帧中的因子变量.但是级别赋值在我的lapply函数中不起作用.

rm.space<-function(x){
    a<-gsub(" ","",x)
    return(a)}


lapply(names(barn),function(x){
    levels(barn[,x])<-rm.space(levels(barn[,x]))
    })
Run Code Online (Sandbox Code Playgroud)

任何想法我如何在lapply函数内分配级别?

//中号

Dir*_*tel 6

R是矢量化的,你不需要apply():

> f <- as.factor(sample(c("  a", " b", "c", "  d"), 10, replace=TRUE))                                                                                                             
> levels(f)                                                                                                                                                                        
[1] "  a" " b"  "c"   "  d"                                                                                                                                                        
> levels(f) <- gsub(" +", "", levels(f), perl=TRUE)                                                                                                                                
> levels(f)                                                                                                                                                                        
[1] "a" "b" "c" "d"                                                                                                                                                                
> f                                                                                                                                                                                
 [1] d a c b c d d a a a                                                                                                                                                           
Levels: a b c d                                                                                                                                                                    
>
Run Code Online (Sandbox Code Playgroud)