Как избежать преобразования R простого символа в кавычки - PullRequest
0 голосов
/ 24 апреля 2020

Я использую 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)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...