我在让R在函数调用中识别我的值列表(在RStudio中)中的项目时遇到了一些麻烦(这里只是将它称为泛型函数)。这是一个例子......如果我直接输入以下内容,以下工作正常:
result <- function(cnv.chr1.S1, cnv.chr1.S2, cnv.chr1.S3)
因为cnv.chr1.S1,cnv.chr1.S2和cnv.chr1.S3是我之前创建的对象(特别是GRanges对象)。
但是当我在不同的染色体上循环并且实际上有超过3个样本(S1,S2,S3)时,我尝试了以下(在此简化)
chrom <- paste("chr", 1:1, sep = "")
sample.names <- paste("S", 1:3, sep = "")
for (thischrom in chrom)
{
for (sample in sample.names)
{
a <- function(list(paste(paste("cnv", thischrom, sep = "."), sample.names, sep = ".")))
}
}
但是,它不起作用,因为
paste(paste("cnv", thischrom, sep = "."), sample.names, sep = ".")
只创建一个与我的“值”列表中的项目名称相同的项目的字符列表。如何让R访问我的值列表中的相应对象?
感谢您的任何想法!
史蒂夫
答案 0 :(得分:-1)
你在找这样的东西吗?
library(dplyr)
chrom <- paste("chr", 1:1, sep = "")
sample.names <- paste("S", 1:2, sep = "")
cnv.chr1.S1 = c(1, 2)
cnv.chr1.S2 = c(2, 3)
result =
data_frame(chrom = chrom) %>%
merge(data_frame(sample.names = sample.names) ) %>%
rowwise %>%
mutate(object =
paste("cnv", chrom, sample.names, sep = ".") %>%
parse(text = .) %>%
eval %>%
list)