2

前几天刚问过,使用readrpackage时如何设置具体的列类型。在 r 中使用 readr 读取文件时的大整数

有没有办法通过通配符定义列名?就我而言,有时我有几列以Intensity和一个附录开头,具体取决于实验。read_tsv如果您事先不知道使用了哪些项目名称,则很难在函数中使用。

所以像这样的东西col_types = cols('Intensity.*' = col_double())会很棒。

有人知道如何获得此功能吗?

编辑: 也许像阅读前两行,grep'强度',names然后以某种方式创建这个参数,如cols(Intensity=col_double(), 'Intensity pg'=col_double(), 'Intensity hs'=col_double()). 但我不知道如何动态创建这个参数值。

4

1 回答 1

3

根据lukeA的评论,我添加了解决我问题的答案...

read_MQtsv <- function(file) {
  require('readr')
  jnk <- read.delim(file, nrows=1, check.names=FALSE)
  matches <- grep('Intensity|LFQ|iBAQ', names(jnk), value=TRUE)
  read_tsv(file, 
           col_types=setNames(
             rep(list(col_double()), length(matches)), 
             matches))
}

因此,我将注释中的单行改编为一个新函数,在读取由名为MaxQuant.

于 2016-08-24T09:12:24.060 回答