mam dataframe tak:dodać wartości kolumny na podstawie innych kolumn w ramce danych, z zastosowaniem, na jeśli
id adit diag1 diag2
2 3 4230 2234
3 5 3345 4456
4 6 4567 4467
będzie dodam 2 pozostałych kolumn dse1
i dse2
pomocą poniższego pseudokod:
if diag1 contains 4230 then dse1 = 1 else dse1 = 0
if diag2 contains 4567 then dse2 =1 else dse2 = 0
użyłem to:
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}
}
}
Ale to nie robić t działa.
Wszystkie poniższe odpowiedzi to poprawna trasa. Jednakże, jeśli używasz 'if/else', to' else musi być w tej samej linii co '' '' z twojego 'if'. – Justin
for (i w 1: nrow (DSE)) { for (j w mieszaninie 3: Ncol (DSE)) { if (DSE [i, j] == 4230) { DSE $ dse1 = 1 } innego { DSE $ dse1 = 0 } if (DSE [i, j]% w% (4567)) {DSE $ dse2 = 1} else {DSE $ dse2 = 0} } } zmienić kody jak wyżej, nie ma błędu, ale wynik nie jest poprawny. Czemu? THnaks – user1582755
Nie jestem pewien, co skomentować. W razie potrzeby możesz edytować pytanie. Ponadto, jeśli któraś z poniższych odpowiedzi rozwiązuje problem, zaznacz go jako odpowiadający, klikając zielony znacznik wyboru na pytanie, abyśmy wszyscy wiedzieli, że został rozwiązany. – Justin