Здравствуйте, у меня есть кадр данных, такой как
COL1 COL2 COL3
A nan NaN
B ET1 Carnivora
C ET1 NaN
D ET2 Fish
E OK Aves
F ET3 NaN
и у меня есть список
List_ET<-c("ET1","ET2","ET3","nan")
И я хотел бы заменить все значения df$COL3, если соответствующий df$COL2
присутствует в этом списке, на Unknown
, но если df$COL3
не NaN
, я ничего не делаю.
чем я должен получить:
COL1 COL2 COL3
A nan Unknown
B ET1 Carnivora
C ET1 Unknown
D ET2 Fish
E OK Aves
F ET3 Unknown
Вот кадр данных
structure(list(COL1 = structure(1:6, .Label = c("A", "B", "C",
"D", "E", "F"), class = "factor"), COL2 = structure(c(4L, 1L,
1L, 2L, 5L, 3L), .Label = c("ET1", "ET2", "ET3", "nan", "OK"), class = "factor"),
COL3 = structure(c(4L, 2L, 4L, 3L, 1L, 4L), .Label = c("Aves",
"Carnivora", "Fish", "NaN"), class = "factor")), class = "data.frame", row.names = c(NA,
-6L))
До сих пор я пытался
df$COL3[df$COL2 %in% List_ET]<- "Unknown"
Но не включено ничего не делать, когда df$COL3 не NaN
df$COL3[df$COL2 %in% List_ET & !is.na(df$COL3)]<- "Unknown"
но, похоже, это не работает - person Grendel   schedule 22.01.2021