首页 > 解决方案 > 为什么 1 在 R 中大于 1?

问题描述

我已经使用 R 进行数据操作很长时间了,最​​近根据我的数据结果,我发现 R 中的条件语句不正确。这是我的数据集的示例:

tail(ncmi[which(ncmi$type=='Above'),])
               p      freq freq.pred  pred.lwr pred.upr  type
OTU328  0.0008791327    1         1 0.7224672        1 Above
OTU81   0.0008872229    1         1 0.7224672        1 Above
OTU2322 0.0008953131    1         1 0.7224672        1 Above
OTU55   0.0009087967    1         1 0.7224672        1 Above
OTU6952 0.0009141902    1         1 0.7224672        1 Above
OTU5350 0.0009249771    1         1 0.7224672        1 Above

如果freq中的数字大于pred.upr,则类型设置为'Above',如您所见,freq中没有一个结果大于pred.upr,而数据类型设置为'以上'。

我的代码中的条件语句如下:

ncmi$type <- ''
for (k in 1:nrow(ncmi)) {
  if(ncmi$freq[k]>ncmi$pred.upr[k]){
    ncmi$type[k] <- 'Above'
  }else if(ncmi$freq[k]<ncmi$pred.lwr[k]){
    ncmi$type[k] <- 'Below'
  }else{
    ncmi$type[k] <- 'Neutral'
  }
}

为什么会发生这种情况?

标签: r

解决方案


推荐阅读