Я использую R l oop для извлечения некоторых полей из нескольких vcfs:
for(i in sample_vcfList){
nam <-paste(i, '_pos', sep="")
assign(nam, as.data.frame(cbind(`i`@rowRanges@ranges@NAMES, `i`@rowRanges@ranges@start)))
colnames(i_pos)<-paste0(c('ID', 'POS'))
nam1<-paste(`i`, '_info', sep="")
assign(nam1, as.data.frame(info(`i`)))
nam2<-paste(`i`, '_vcfdf', sep="")
assign(nam2, cbind(nam, nam1))
}
Проблема в том, что имена vcf начинаются с цифр, поэтому я не могу вызвать i
в l oop, Мне нужно вызвать `i`
(например, если у меня есть vcf с именем 2sample
, для доступа к его переменным мне нужно сделать `2sample`$variable1
).
Проблема в том, что я звоню print(`i`)
, что R печатает "i"
. Таким образом, в первой команде присвоения выполняется следующее:
assign(nam, as.data.frame(cbind("2sample"@rowRanges@ranges@NAMES, "2sample"@rowRanges@ranges@start)))
и, конечно, это не работает, потому что я вызываю символ, а не объект, представленный переменной. Итак, вы знаете, как я могу получить это?
assign(nam, as.data.frame(cbind(`2sample`@rowRanges@ranges@NAMES, `2sample`@rowRanges@ranges@start)))