我有一个应用于某一列并将结果放入另一列的函数,有时会输出integer(0)
。因此,我的输出列将是这样的:
45
64
integer(0)
78
如何检测这些
integer(0)
并用NA
替换它们?是否有类似于is.na()
的函数可以检测它们?请注意保留HTML标记。
编辑:好的,我想我有一个可重现的例子:
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)
)。
integer(0)
。请提供一个可重现的示例。 - Sven Hohensteinlength()==0
,参见:https://dev59.com/1Gw15IYBdhLWcg3wtd0g - holzbeninteger(0)
是如何出现在你的输出中的。但是为了让你继续前进:要测试一个对象是否为integer(0)
,你可以使用identical(object, integer(0))
。 - Mark Heckmann