2016-12-05 76 views
0

我的功能如下:如何在R的列中確定的行中插入值?

MES2 <- function(Base) 
{ 

    cond1 <- grepl("M.E.S", Base$titulo_janela) 
    cond2 <- grepl("172.22.5.30", Base$url_destino_N3) 
    cond3 <- grepl("mes", Base$atividade_N2) 
    cond4 <- grepl("cid/portalmes/", Base$url_destino_N3) 
    cond5 <- grepl("novomes", Base$url_destino_N3) 
    cond6 <- grepl("AMBEV - MES -", Base$titulo_janela) 
    cond7 <- grepl("MES - Manufacturing Execution", Base$titulo_janela) 
    cond8 <- grepl("3M_", Base$titulo_janela) 

    for (i in 1:length(Base$id)) { 
    if (Base$processo_sistema_N1[i] != "iexplore") { 
     cond8[i] <- FALSE 
    } 
    } 

    for (k in 1:length(Base$id)) { 
    if (cond1[k] == TRUE || cond2[k] == TRUE || cond3[k] == TRUE || cond4[k] == TRUE 
     || cond5[k] == TRUE || cond6[k] == TRUE || cond7[k] == TRUE 
     || cond8[k] == TRUE) { 
     Base$processo_sistema_N1[k] <- "MES" 
    } 
    } 

    return(Base) 

} 

的問題是:我想在列「processo_sistema_N1」的判定行更改值,但是當我在我的基地運行函數返回「NA」而不是「MES」。你們有什麼問題的線索嗎?

在此先感謝。

+2

我認爲問題在於'processo_sistema_N1'這個列是一個因素而不是字符。在這種情況下,該因子不包含具有標籤「MES」的級別,因此結果爲「NA」。 – aichao

+1

,我相信,整個代碼塊可能已被寫入2-3行。 –

回答

0

運行函數之前,添加列的適當的(未來的)水平要更改: 水平(基本$ processo_sistema_N1)< - C(水平(基本$ processo_sistema_N1), 「MES」) 。希望工程。