我是Python用户,正在学习R。
经常需要检查数据框列中是否包含NaN。
在Python中,我可以简单地执行以下操作:
import pandas as pd
df = pd.DataFrame({'colA': [1, 2, None, 3],
'colB': ['A', 'B', 'C', 'D']})
df.isna().any()
给我
colA True
colB False
dtype: bool
我在R中遇到了困难,找不到一个简单的解决方案。人们提到了一些类似于"apply"的方法,但对于这样一个基本的任务来说,似乎过于复杂。我找到的最接近的解决方案是这个:
library(tidyverse)
df = data.frame(colA = c(1, 2, NA, 3), colB = c('A', 'B', 'C', 'D'))
!complete.cases(t(df))
提供
[1] TRUE FALSE
这还好,但我看不到列名。如果数据框有50个列,我就不知道哪个有NaN值。
有更好的R解决方案吗?
NA
和NaN
之间有区别。 - Hong Ooivapply
:vapply(df, anyNA, FUN.VALUE = logical(1))
。FUN.VALUE
指定您期望的结果 - 在这里是每列长度为 1 的逻辑向量。 - markus