从矩阵中读取变量并在R中的函数中使用它们?

时间:2015-07-02 18:34:30

标签: r

我有一个名为“met”的682 * 1矩阵,前5行类似于:

>  rownames(met)[1:5]

    [1]  "glycine_imp" 
    [2]  "Nacetylglycine_imp" 
    [3]  "sarcosine_imp"      
    [4]  "dimethylglycine_imp" 
    [5]  "betaine_imp" 

我在R中有一个函数,每次使用“met”矩阵的行名称之一并创建一个新的目标文件,我应该保存对象!

my function is  
prep[i]<- Scores(Z=GT,formula="met[i]~egfr_v1_ckdepi+pc1+pc2+pc3+V1AGE01+GENDER") 

每次我应该更改met [i]并将其替换为“met”矩阵的行名称(逐个),并且对于每个我应该更改函数的名称,之后我应该保存每个对象!

例如对于第一行“met”,我有“glycine_imp”

>   **prep1**<- Scores (Z=GT,formula="**glycine_imp**~egfr_v1_ckdepi+pc1+pc2+pc3+V1AGE01+GENDER") 
    #creat the object file for first row and called prep1###

>   save(prep1, file="prep1.RData", compress="bzip2")
    ##save the object file as "prep1.RData"#####

我应该为682行“met”矩阵的行名称执行此过程,最后我应该有     “prep1.RData”,“prep2.RData”,“prep3.RData”

我使用循环功能,但它有不同的错误!! 你能问我该怎么办?

非常感谢

1 个答案:

答案 0 :(得分:1)

我不知道你的功能细节,所以我只能提供一个广泛的想法。

A <- matrix(1:10, ncol = 5)
Scores <- function(x){return(x+1)}

for(i in 1:10){
  df <- data.frame(tmp = 1)
  name <- paste("prep", as.character(i), sep = "") 
  df[[name]]=Scores(A)
  save(file = paste("prep", as.character("i"), ".RData", sep = ""), df[[name]], 
       compress = "bzip2")
}

这有用吗?