Ho un dataframe simili:aggiungere valori di colonna sulla base di altre colonne cornice dati utilizzando e se
id adit diag1 diag2
2 3 4230 2234
3 5 3345 4456
4 6 4567 4467
Vorrei aggiungere altre 2 colonne, dse1
e dse2
usando il pseudo-codice qui sotto:
if diag1 contains 4230 then dse1 = 1 else dse1 = 0
if diag2 contains 4567 then dse2 =1 else dse2 = 0
ho usato questo:
for (i in 1 : nrow(dse)){
for (j in 3: ncol(dse)){
if dse[i,j] %in% ("4320"){dse$dse1 = 1}
else{dse$dse1 = 0}
if dse[i,j] %in% ("4567"){dse$dse2 = 1}
else{dse$dse2 = 0}
}
}
ma questi non lavoro.
Tutte le risposte seguenti sono la rotta corretta. Tuttavia, se stai usando 'if/else', allora' else deve essere sulla stessa riga di chiusura '}' dalla tua istruzione 'if'. – Justin
per (i in 1: nrow (DSE)) { for (j in 3: ncol (DSE)) { se (DSE [i, j] == 4230) { DSE $ dse1 = 1 } altro { DSE $ dse1 = 0 } se (DSE [i, j]% in% (4567)) {DSE $ dse2 = 1} else {DSE $ dse2 = 0} } } posso cambiare i codici come sopra, non c'è errore, ma il risultato non è corretto. Perché? THnaks – user1582755
Non so cosa fare del tuo commento. Puoi modificare la tua domanda secondo necessità. Inoltre, se una delle risposte di seguito ha risolto il problema, contrassegnarlo come risposta facendo clic sul segno di spunta verde accanto alla domanda in modo che tutti sappiamo che è stato risolto. – Justin