R 中关于 <NA> 的警告消息

Warning Message in R about <NA>

我有一个 data.frame 的形式:

Set_1     Set_2     Set_3     Set_4     Set_5     Set_6     Set_7
1.42      0.98      <NA>      <NA>      0.98      2.91      0.40
<NA>      1.11      1.23      1.54      1.99      <NA>      <NA>
<NA>      1.02      0.99      <NA>      0.99      <NA>      1.00
<NA>      <NA>      1.88      0.87      0.32      0.55      1.33

我正在尝试计算每列中超过 2.0 的百分比

我正在使用代码percent <- colSums(df > 2.0, na.rm=TRUE)/colSums(!is.na(df))

但我不断收到警告消息:In Ops.factor(left, right) : > not meaningful for factors。我该如何解决这个问题?

您可以将列转换为 numeric,然后继续使用百分比

dat[] <- lapply(dat, function(x) as.numeric(as.character(x)))
sapply(dat, function(x) sum(x>2, na.rm=T)/nrow(dat))

一种检查列类型的有用方法是

sapply(dat, class)

此外,正如@RichardScriven 指出的那样,您可以使用

摆脱转换过程中烦人的警告
dat[] <- suppressWarnings(lapply(dat, function(x) as.numeric(as.character(x))))