/ / R - Ersetzt Werte in einer Spalte durch die einer anderen Spalte, wenn keine andere Spalte fehlt - r

R - Ersetzen von Werten in einer Spalte durch die einer anderen Spalte, wenn die andere Spalte nicht fehlt - r

Ich habe folgenden Datenrahmen:

    IID sex longitude latitude longitude.1 latitude.1 longitude.2 latitude.2
1234587   0    351500   383500          NA         NA          NA         NA
5145633   1    431340   265505          NA         NA          NA         NA
1305430   1    449500   244900      262500     265500          NA         NA
5012044   0    445600   514300          NA         NA          NA         NA
1234059   1        NA       NA      514300     514300      445500     445520
3087662   0    444500   425200          NA         NA          NA         NA
....
....etc

Ich möchte die Längenwerte durch ersetzendie Werte von longitude.1, wenn longitude.1 nicht fehlt, und machen Sie dasselbe für width und width.1. Ich dachte das sollte einfach sein und probierte folgendes:

MyData$longitude[!is.na(MyData$longitude.1)] <- MyData$longitude.1
MyData$latitude[!is.na(MyData$latitude.1)] <- MyData$latitude.1

Ich erhalte jedoch den folgenden Fehler:

Warning message:
In MyData$longitude[!is.na(MyData$longitude.1)] <- MyData$longitude.1 :
number of items to replace is not a multiple of replacement length

Was habe ich falsch gemacht?

Das Ergebnis sollte folgendes sein:

    IID sex longitude latitude longitude.1 latitude.1 longitude.2 latitude.2
1234587   0    351500   383500          NA         NA          NA         NA
5145633   1    431340   265505          NA         NA          NA         NA
1305430   1    262500   265500      262500     265500          NA         NA
5012044   0    445600   514300          NA         NA          NA         NA
1234059   1    514300   514300      514300     514300      445500     445520
3087662   0    444500   425200          NA         NA          NA         NA
....
....etc

Antworten:

1 für die Antwort № 1

MyData$longitude[!is.na(MyData$longitude.1)] ergibt 2 NA während MyData$longitude.1 ist alle 6 Werte. Also schlägt die Zuordnung fehl. Bekommen das longitude.1 das ist auch nicht NA:

MyData$longitude[!is.na(MyData$longitude.1)] <- MyData$longitude.1[!is.na(MyData$longitude.1)]

MyData$latitude[!is.na(MyData$latitude.1)] <- MyData$latitude.1[!is.na(MyData$latitude.1)]