UseMethod出错("选择_"):没有适用于'选择_'的方法应用于类的对象" NULL"

时间:2015-09-29 23:26:13

标签: r rstudio knitr dplyr r-markdown

当{R} Markdown到HTML文件中hand2 <- c("Q","Q","6","6","Q") 时,我收到一个奇怪的错误。我认为这与knitting包裹dplyr中的某种不兼容性有关。

更新:我使用knitr命令替换了cbind块,正如下面有人建议不要将dplyr::bind_colscbind一起使用。但是,我现在得到一个不同的,同样难以理解的错误:

dplyr

我从这次改变中得到的错误(再次,仅在编织时):

library(dplyr) counts.all <- bind_cols(count.tables[["SF10281"]], count.tables[["SF10282"]])

Error in eval(expr, envir, enclos) : not compatible with STRSXP Calls: <Anonymous> ... withVisible -> eval -> eval -> bind_cols -> cbind_all -> .Call而不是cbind的上一个错误:

单独运行块工作正常,我能够dplyr::bind_cols好,直到我添加最后一个块(使用knit中的select)。

这是我得到的错误:

dplyr

这是整个Rmd文件:

将基因计数表读入单个数据帧列表(每个样本一个数据帧):

Quitting from lines 75-77 (Analysis_SF10281_SF10282_Sep29_2015.Rmd) 
Error in UseMethod("select_") : 
  no applicable method for 'select_' applied to an object of class "NULL"
Calls: <Anonymous> ... withVisible -> eval -> eval -> <Anonymous> -> select_

删除基因元数据列:

```{r}
count.files <- list.files(pattern = "^SF[0-9]+_counts.txt$")

count.tables <- lapply(count.files, read.table, header=T, row.names=1)

names(count.tables) <- gsub("\\_counts.txt", "", count.files)
```

将单元格(列)重命名为短版本:

```{r}
count.tables <- lapply(count.tables, `[`, -(1:5))
```

将对象保存到文件以供日后使用:     ```{r} count.tables <- lapply(count.tables, function(x) {names(x) <- gsub("X.diazlab.aaron.tophat_out.SF[0-9]+.Sample_(SF[0-9]+).[0-9]+.([A-Z][0-9]+).accepted_hits.bam", "\\1-\\2", names(x)); x}) ```

使用所有4个样本(384个单元格)创建单个数据框,并写入文本文件:

{r}
    saveRDS(count.tables, file="gliomaRawCounts_10281_10282_10345_10360.rds")

读取元数据。 不要将cell ID列指定为row.names,以与dplyr兼容。

```{r}
counts.all <- cbind(count.tables[["SF10281"]], count.tables[["SF10282"]], count.tables[["SF10345"]], count.tables[["SF10360"]])

write.table(counts.all, file="gliomaRawCounts_10281_10282_10345_10360.txt", sep="\t", quote=F, col.names=NA)
```

根据实时/死/多次呼叫过滤单元格。 排除空的,仅红色的和多细胞的孔:

```{r}
meta <- read.delim("QC_metrics_SCell_SF10281_SF10282_SF10345_SF10360.txt", check.names = F, stringsAsFactors = F)
```

根据1,000个基因阈值过滤细胞:

```{r, results='hide', message=FALSE, warning=FALSE}
library(dplyr)
meta.select <- filter(meta, grepl("^1g", `Live-dead_call`))
```

子集计数表仅包括通过QC的单元格。

(Includes 12 'FAIL' cells)
```{r}
meta.select <- filter(meta.select, Genes_tagged > 1000)
```

0 个答案:

没有答案