R中关于<;的警告消息;NA>;
我有一个data.frame,格式如下:R中关于<;的警告消息;NA>;,r,dataframe,na,R,Dataframe,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> <
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
Set_1 Set_2 Set_3 Set_4 Set_5 Set_6 Set_7
1.42 0.98 0.98 2.91 0.40
1.11 1.23 1.54 1.99
1.02 0.99 0.99 1.00
1.88 0.87 0.32 0.55 1.33
我试图计算超过2.0的每列的百分比
我正在使用代码percent2.0,na.rm=TRUE)/colSums(!is.na(df))
但我一直收到警告信息:
在Ops.factor(左、右):>对于factors来说没有意义。如何解决此问题?您可以将列转换为数值,然后继续百分比
dat[] <- lapply(dat, function(x) as.numeric(as.character(x)))
sapply(dat, function(x) sum(x>2, na.rm=T)/nrow(dat))
此外,正如@RichardScriven所指出的,您可以使用
dat[] <- suppressWarnings(lapply(dat, function(x) as.numeric(as.character(x))))
dat[]当我使用你的顶行dat[]@Evan是的,很抱歉我没有测试过,正如RichardScriven指出的,你需要转换因子->字符->数字输出与OP的代码不同。我认为OP试图删除分母中NA
的观察结果。。i、 ecolSums(dat>2,na.rm=TRUE)/colSums(!is.na(dat))
dat[] <- suppressWarnings(lapply(dat, function(x) as.numeric(as.character(x))))