今天遇到一個(gè)問題速侈,比如有一堆基因名绍移,genes <- c("ADAMTS19", "AHSG", "APOA1", "APOA2", "APOC3")
倦微,我想挨個(gè)處理以后揍瑟,把每個(gè)基因?qū)?yīng)的結(jié)果放到一個(gè)新的變量里少欺,而這個(gè)新的變量自動(dòng)以該基因或相關(guān)的字符串命名喳瓣。例如第一個(gè)就叫"gene_ADAMTS19"
。
在循環(huán)的時(shí)候赞别,當(dāng)然不能寫for (gene in genes) {gene <- XXXX_function}夫椭,這樣只能留下最后一次循環(huán)的結(jié)果,前面的都會(huì)被覆蓋掉氯庆,或者根本不能直接賦值蹭秋。
思考這個(gè)問題最核心的部分在于,每個(gè)循環(huán)中的變量名都是不同的堤撵,賦值的結(jié)果怎樣才能是變量仁讨?這個(gè)時(shí)候需要請(qǐng)出assign(x, value)
函數(shù),可以把value
的值賦給x
实昨;這個(gè)時(shí)候x
作為參數(shù)洞豁,就可以隨意寫了。就像這樣:
for (gene in genes) {
gene_name <- paste("gene", gene, sep = "_") # 每次的變量名都含有當(dāng)前的"gene"。
assign(gene_name, XXXX_function(gene, parameter2)) # 將XXXX_function的結(jié)果assign給當(dāng)前的變量名丈挟。
}