我有一个函数可以应用于列,并将结果放在另一列中,它有时候会给我integer(0)
作为输出。所以,我的输出列将是这样的:用NA替换整数(0)
45
64
integer(0)
78
我如何检测这些integer(0)
的和NA
取代他们?有没有像is.na()
那样会检测到它们?
编辑:好吧,我想我有一个重复的例子:
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)
)。
would data.frame $ column [data.frame $ column == integer(0)] < - NA work? – cianius
@pepsimax你为什么不把它作为答案(也许提供一个工作的例子)? –
数据帧不能包含“整数(0)”。请提供一个可重复的例子。 –