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))))
我有一个 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))))