2016-12-05 2 views
0

Meine Funktion ist unten angegeben:Wie kann ich einen Wert in eine bestimmte Zeile einer Spalte in R einfügen?

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) 

} 

Das Problem ist: Ich habe den Wert in einer bestimmten Zeile der Spalte „processo_sistema_N1“ ändern will, aber wenn ich die Funktion auf meiner Basis laufen gibt sie „NA“ anstelle des Wortes "MES". Habt ihr einen Hinweis darauf, was schief läuft?

Vielen Dank im Voraus.

+2

Ich glaube, das Problem ist, dass die Spalte 'processo_sistema_N1' ein Faktor anstelle von Zeichen ist. In diesem Fall enthält der Faktor nicht die Ebene mit der Bezeichnung "MES", daher ist das Ergebnis "NA". – aichao

+1

und ich bin sicher, der gesamte Code-Chunk könnte in 2-3 Zeilen geschrieben worden sein. –

Antwort

0

, bevor Sie die Funktion ausführen, fügen Sie entsprechende (zukünftigen) Ebenen der Spalte geändert werden soll: Ebenen (Basis $ processo_sistema_N1) < - c (Level (Basis $ processo_sistema_N1), "MES") Hoffnung, das funktioniert .

Verwandte Themen