2016-12-05 78 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”) 。希望工程。