Hi group, I am automatically creating several matrices to store results from different analyses on vectors of different lengths. The matrices are named according to each vector, so I can trace back results. I am using the following commands, which give me an error. My idea is to populate the for loop to include several steps and keep adding results to the matrices. But to start with: > ls() [1] "PS013_1" "PS056_1" "PS058_1" "PS080_1" "PS117_1" "PS193_1" "PS194_1" > mynames<- c("PS013","PS056","PS058","PS080","PS117","PS193","PS194") > for (j in 1:length(mynames)) { #create as many 13x3 matrices as vectors I have. The rowname of the last row will be the length of the vector > assign(paste("results",mynames[j],"1",sep="_"),matrix(data=NA,nrow=13,ncol=3,dimnames > = > list(c(10,20,30,35,40,50,60,70,80,90,100,120,print(length(get(paste(mynames[j],1,sep="_"))))),c("col1","col2","col3")))) > # Example: assign three values in the last row of the created matrices >assign(paste("results",mynames[j],"1",sep="_")[13,],c(3,4,5))
} Error in paste("results", mynames[j], "1", sep = "_")[13, ] : incorrect number of dimensions I have noticed that to access the positions of a matrix I cannot use [row,column] coordinates, but actual "count" positions like: #let's write something in one of the matrices, since they are all NAs > results_PS013_1[1,]<-c(1,14,27) > get(paste("results",mynames[1],"1",sep="_")) col1 col2 col3 10 1 14 27 20 NA NA NA 30 NA NA NA 35 NA NA NA 40 NA NA NA 50 NA NA NA 60 NA NA NA 70 NA NA NA 80 NA NA NA 90 NA NA NA 100 NA NA NA 120 NA NA NA 295 NA NA NA > get(paste("results",mynames[1],"1",sep="_"))[1] [1] 1 > get(paste("results",mynames[1],"1",sep="_"))[2] [1] NA > get(paste("results",mynames[1],"1",sep="_"))[14] [1] 14 > get(paste("results",mynames[1],"1",sep="_"))[c(1,14,27)] [1] 1 14 27 So if I try to write three other values to the first row of the first matrix, I now try the following > assign(get(paste("results",mynames[1],"1",sep="_"))[c(1,14,27)],c(3,4,5)) Error in assign(get(paste("results", mynames[1], "1", sep = "_"))[c(1, : invalid first argument Can anyone explain to me why I cannot assign the values in this way and how is it that I cannot use [row,column] coordinates? Thanks in advance for your help Dave [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.