r:获取只有 NaN 值的列
r: get columns that only have NaN value
示例代码:
df
:
# a b c
# 1 -0.0010616345688829504 -4.1135727372109387e-05 -0.0001814242939304348
只有 1 行和 3000 多列。
我想知道我如何才能 select 仅具有 NaN
的列(其中有我已经确认查看数据。)如果具有 NA
如果代码明显不同。
我尝试使用 is.nan
,但效果不佳。我以前使用 df,which(df[1,]== some value)]
来表示其他值,例如数字和逻辑值,但不适用于 NaN 和 NA。
期待这样的事情:
res
:
# d
# 1 NaN
我们可以使用Filter
Filter(function(x) is.nan(x), df)
# d
#1 NaN
最好是unlist
,因为只有一行
df[is.nan(unlist(df))]
is.nan
会为 NA
给出 FALSE
而 is.na
会为两个
给出 TRUE
is.nan(c(NA, NaN))
#[1] FALSE TRUE
is.na(c(NA, NaN))
#[1] TRUE TRUE
数据
df <- data.frame(a = -0.0010616345688829504,
b = -4.1135727372109387e-05, c = -0.0001814242939304348, d = NaN)
对于一个非常简单的解决方案,在基数 R 中传递一个逻辑向量
df[, is.na(df)]
此 returns 列具有 NA 和 NaN
示例代码:
df
:
# a b c
# 1 -0.0010616345688829504 -4.1135727372109387e-05 -0.0001814242939304348
只有 1 行和 3000 多列。
我想知道我如何才能 select 仅具有 NaN
的列(其中有我已经确认查看数据。)如果具有 NA
如果代码明显不同。
我尝试使用 is.nan
,但效果不佳。我以前使用 df,which(df[1,]== some value)]
来表示其他值,例如数字和逻辑值,但不适用于 NaN 和 NA。
期待这样的事情:
res
:
# d
# 1 NaN
我们可以使用Filter
Filter(function(x) is.nan(x), df)
# d
#1 NaN
最好是unlist
,因为只有一行
df[is.nan(unlist(df))]
is.nan
会为 NA
给出 FALSE
而 is.na
会为两个
TRUE
is.nan(c(NA, NaN))
#[1] FALSE TRUE
is.na(c(NA, NaN))
#[1] TRUE TRUE
数据
df <- data.frame(a = -0.0010616345688829504,
b = -4.1135727372109387e-05, c = -0.0001814242939304348, d = NaN)
对于一个非常简单的解决方案,在基数 R 中传递一个逻辑向量
df[, is.na(df)]
此 returns 列具有 NA 和 NaN