我刚才问过,在使用readr
包时如何设置特定的列类型。 big integers when reading file with readr in r
有没有办法通过通配符定义列名?在我的情况下,我有时会有几列以Intensity
开头,而附录则取决于实验。如果您不知道使用哪个项目名称,则很难在函数中使用read_tsv
。
像col_types = cols('Intensity.*' = col_double())
这样的东西会很棒。
有人知道如何获得此功能吗?
修改
也许就像阅读前2行,grep
'强度'在names
中,然后以某种方式创建此参数,如cols(Intensity=col_double(), 'Intensity pg'=col_double(), 'Intensity hs'=col_double())
。
但是我不知道如何动态创建这个参数值。
答案 0 :(得分:2)
我根据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
程序生成的特殊文件时使用。