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 № 1MyData$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)]