Ich habe einen Datenrahmen, und wie bestimmte Werte zu ersetzen, wenn andere Werte in derselben Reihe eine bestimmte Bedingung erfüllen, zum Beispiel:basierend auf anderem Wert in DF
DF <- data.frame(a= c(2,4,67),
b= c("TSS",".","TSS"),
c= c(3,46,5),
d= c(45,"-",47))
ergeben:
a b c d
1 2 TSS 3 45
2 4 . 46 -
3 67 TSS 5 47
Jetzt möchte ich Werte in Zeile 2 Spalte c und d durch "." und [2, c], wenn der Wert von [2, b] "." ist. Das Ergebnis würde wie folgt aussehen:
a b c d
1 2 TSS 3 45
2 4 . . 46
3 67 TSS 5 47
I for-Schleife ein probiert, aber da ich eine große Datenmenge habe dies dauert zu lange. Gibt es einen besseren Weg, um dieses Problem zu lösen?
Dies wird nicht verallgemeinert. Was passiert mit mehr Spalten oder Wenn das '". "' In einer anderen Spalte gefunden wird? – Sotos
Richtig, es verallgemeinert sich nicht. Ich dachte OP wollte eine Antwort für diesen speziellen Fall. Ich denke, eine generalisierte Lösung wäre, die Zeilen zu verschieben, in denen das "." tritt auf, beginnend mit der Spalte nach dem "." und füllen Sie es mit einem anderen ".". – brettljausn
Ich stimme Ihrer Logik zu. Bitte bearbeiten Sie Ihre Antwort, um den allgemeinen Fall einzubeziehen, damit mehr Nutzer davon profitieren können. – Sotos