[R] Create a variable lenght string that can be used in a dimnames statement

Sorkin, John j@ork|n @end|ng |rom @om@um@ry|@nd@edu
Mon Jul 3 22:08:06 CEST 2023


Colleagues,

I am sending this email again with a better description of my problem and the area where I need help.

I need help creating a string of variables that will be accepted by the dimnames function. The string needs to start with the dimnames j and k followed by a series of dimnames xxx1, . . . ., xxx2, . . ., xxxn. I create xxx1, xxx2 (not  going to xxxn to shorten the code below) as a string using a for loop and the paste function. I then use a paste function, zzz <- paste("j","k",string) to create the full set of dimnames, j, k, xxx1, xxx2 as string. I create the matrix myvalues in the usual way and attempt to assign dim names to the matrix using the following dimnames statement,
dimnames(myvalues)<-list(NULL,c(zzz))
The dimnames statement leads to the following error, 
 Error in dimnames(x) <- dn : 
  length of 'dimnames' [2] not equal to array extent
A colnames statement,
colnames(myvalues)<-as.character(zzz)
produces the same error. 

Can someone tell me how to create a sting that can be used in the dimnames statment?

Thank you (and please accept my apologies for double posting).

John

# create variable names xxx1 and xxx2.
string=""
for (j in 1:2){
  name <- paste("xxx",j,sep="")
  string <- paste(string,name)
  print(string)
}
# Creation of xxx1 and xxx2 works
string

# Create matrix
myvalues <- matrix(nrow=2,ncol=4)
head(myvalues,1)
# Add "j" and "k" to the string of column names
zzz <- paste("j","k",string)
zzz
# assign column names, j, k, xxx1, xxx2 to the matrix
# create column names, j, k, xxx1, xxx2.
dimnames(myvalues)<-list(NULL,c(zzz))
colnames(myvalues) <- string


More information about the R-help mailing list