首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在警告阈值下滤除数据以避免相关的“不够有限的观测”

如何在警告阈值下滤除数据以避免相关的“不够有限的观测”
EN

Stack Overflow用户
提问于 2017-09-07 09:39:05
回答 1查看 640关注 0票数 1

我正在学习一些R和它在数据分析中的应用,所以很抱歉我的问题很愚蠢……

我正在分析一个数据框架与大量数据有关的蛋白质存在的一组细胞株从AMD安德森数据库。因此,我在datatable中作为行将细胞株和蛋白质作为数据("AMDDatabase")放在cols上。我需要使用相关来交叉这些数据,但是当我使用它时,它会给我一个错误“评估错误:不够有限的观察”。

代码语言:javascript
复制
actividad_protein_long <- gather(data = AMD_database, key = protein, value = level, -(1:5))

correlation_table <- na.omit(actividad_protein_long) %>%
  group_by(protein) %>%
  summarise(r = cor.test(rel_IC50_uM, level, method = "Kendall")$estimate,
        p_value = cor.test(rel_IC50_uM, level, method = "Kendall")$p.value)

据我所知,问题与结肠的数据数目有关,这个数字有很大的差异,我可以看到其中一些是在每个蛋白质的3个数据点以下,所以分析不能完成。

我如何过滤以前的数据,以便删除所有的数据,在三个观察下执行分析所需的数据?

我试过了

代码语言:javascript
复制
filteredData <- AMD_database[which(,colSums(!is.na(AMD_database)))>3]
filteredData <- AMD_database[which(AMD_database[,colSums(AMD_database)]>3)]

但结局并不好。在使用相关性之前,如何使AMD_database中的所有列都包含足够的非NA值?还有比这更好的解决办法吗?这样绕开这个警告是正确的,还是我犯了一个很大的错误来避免它?

并且已经检查了:cor.test ,"not enough finite observations" How to ignore cor.test:“not enough finite observations” and continue, when using tidyverse and ggplot2 (ggpmisc) R cor.test : "not enough finite observations"

但是我不能使用"Purrl“包,因为这是打算在一个无法使用该包的服务器上共享的,而且我不确定我是否会像另一篇文章所告诉的那样绕过错误。

预先表示感谢:)

EN

回答 1

Stack Overflow用户

发布于 2017-09-07 11:03:33

如果我正确理解了问题,问题是每一列都有不同的缺失变量行。下面是我的粗略解决方案,对于每两列,它将检查它们共享的未丢失行的数量,并计算如果

代码语言:javascript
复制
## Creating data 

dat <- replicate(100, rnorm(20))

# Adding NAs 

dat[sample(2000, 700)] <- NA


cor.wrap <- function(dat) {
  p <- ncol(dat)
  cor.mat <- matrix(NA, ncol = p, nrow = p)
  for (i in 1:(p - 1)) {
    for (j in i:p) {
      num.ind <- !is.na(dat[ ,i]) & !is.na(dat[ ,j])
      cor.mat[i,j] <- ifelse(sum(num.ind) > 3, 
                             cor.test(dat[num.ind, i], dat[num.ind, j])$statistic,
                             NA)

    }
  }
  return(dat)
}

cor.wrap(dat)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46092972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档