Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中关于<;的警告消息;NA>;_R_Dataframe_Na - Fatal编程技术网

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

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> <

我有一个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
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、 e
colSums(dat>2,na.rm=TRUE)/colSums(!is.na(dat))
dat[] <- suppressWarnings(lapply(dat, function(x) as.numeric(as.character(x))))