为什么这个循环返回NULL

时间:2016-08-31 09:28:28

标签: r loops gsub

我想替换URL中的特定字符串 所以我会得到一个数据框的链接列每个"工作"。似乎 我的循环有问题。我怎么解决 这个问题?

        dat <- read.table(text = "  Index          job          age            
                                         44        DBA            0      
                                         55        SAS            0      
                                         66        CLOUD          0      
                                         77        AJAX           0      
                                         88        C              1      
                                         99        FULLSTACK      1  ", header = TRUE)

    dat1<-as.list(dat[[2]])
    url  = "'as/DD/p=DD"
    test <-gsub('DD',dat1[[1]],url,ignore.case = T)   # checking the gsub result manually
    test
    #[1] "'as/DBA/p=DBA"    #this is correct

#Now inside a loop    
    s<- for (i in 1:length(dat1)){
            test <-gsub('DD',dat1[[1]],url,ignore.case = T)
         }
    s
    > s
    NULL  

为什么我得到&#34; Null&#34;而是以下期望的结果:

    as/DBA/p=DBA
    as/SAS/p=SAS            
    as/CLOUD/p=CLOUD
    as/AJAX/p=AJAX
    as/C/p=C
    as/FULLSTACK/p=FULLSTACK  

1 个答案:

答案 0 :(得分:2)

您没有将结果保存在任何地方。如果您更改循环以便选择适当的列表元素并将结果保存到列表中,它应该为您提供所需的内容。

for (i in 1:length(dat1)){
  test <-gsub('DD',dat1[[i]],url,ignore.case = T)
  dat1[[i]] <- test
}