У меня есть функция, которую я применяю к столбцу и помещаю результаты в другой столбец, и иногда он дает мне integer(0)
в качестве вывода. Так что мой выходной столбец будет что-то вроде:Замените integer (0) на NA
45
64
integer(0)
78
Как я могу обнаружить эти integer(0)
«S и заменить их NA
? Есть что-то вроде is.na()
, которое их обнаружит?
Edit: Хорошо, я думаю, что у меня есть воспроизводимый пример:
df1 <-data.frame(c("267119002","257051033",NA,"267098003","267099020","267047006"))
names(df1)[1]<-"ID"
df2 <-data.frame(c("257051033","267098003","267119002","267047006","267099020"))
names(df2)[1]<-"ID"
df2$vals <-c(11,22,33,44,55)
fetcher <-function(x){
y <- df2$vals[which(match(df2$ID,x)==TRUE)]
return(y)
}
sapply(df1$ID,function(x) fetcher(x))
Выход из этого sapply
является источником проблемы.
> str(sapply(df1$ID,function(x) fetcher(x)))
List of 6
$ : num 33
$ : num 11
$ : num(0)
$ : num 22
$ : num 55
$ : num 44
Я не хочу, чтобы это список - Я хочу, чтобы вектор, и вместо num(0)
я хочу NA
(примечания в этих игрушечных данных дает num(0)
- в моих реальных данных это дает (integer(0)
).
будет data.frame $ column [data.frame $ column == integer (0)] <- NA work? – cianius
@pepsimax почему бы вам не сказать это как ответ (может быть, рабочий пример)? –
Кадр данных не может содержать 'integer (0)'. Просьба привести воспроизводимый пример. –