在 colnames 中使用粘贴功能
Using paste function within colnames
我想使用迭代将列表中的条目变成 2x2 矩阵,然后为这些表分配相同的列名和行名,并为矩阵单元格分配整数值。
为了举例,让我们假设这是一个列表,其中包含我想将其名称转换为矩阵的条目:
cnames <- c("Honda", "Toyota", "Nissan")
自己创建表似乎可以很好地使用分配函数:
for (i in 1:length(cnames)){
assign(paste(cnames[i],"table",sep="_"), matrix(,nrow=2,ncol=2))
}
当我输入时,例如:
> Honda_table
...returns:
[,1] [,2]
[1,] NA NA
[2,] NA NA
但是如果在原始迭代函数中我尝试分配列名,如下所示:
for (i in 1:length(cnames)){
assign(paste(cnames[i],"table",sep="_"), matrix(,nrow=2,ncol=2))
colnames(paste(cnames[i],"table",sep="_")) <- c("A","B")
}
...我收到此错误:
Error : attempt to set 'colnames' on an object with less than two dimensions
我不明白为什么会出现这种情况,因为在使用原始分配函数后,如果我查找任何表格的维度,例如:
>dim(honda_table)
...我得到:
[1] 2 2
这表示它是一个 2x2 维对象。
此外,我无法为矩阵单元格分配预设值,如下所示:
for (i in 1:length(cnames)){
assign(paste(cnames[i],"table",sep="_"), matrix(,nrow=2,ncol=2))
paste(cnames[i],"table",sep="_")[1,1] = 1
}
...没有收到此错误:
Error : incorrect number of subscripts on matrix
这是怎么回事?
谢谢。
我不确定这是最好的、最漂亮的方法,但似乎有效:
for (i in 1:length(cnames)){
tab<- matrix(,nrow=2,ncol=2)
colnames(tab)<- c("A","B")
assign(paste(cnames[i],"table",sep="_"), tab)
}
rm(tab)
经过多次建议后,我最终放弃了 assign 函数,而是简单地创建了一个表格向量
我想使用迭代将列表中的条目变成 2x2 矩阵,然后为这些表分配相同的列名和行名,并为矩阵单元格分配整数值。
为了举例,让我们假设这是一个列表,其中包含我想将其名称转换为矩阵的条目:
cnames <- c("Honda", "Toyota", "Nissan")
自己创建表似乎可以很好地使用分配函数:
for (i in 1:length(cnames)){
assign(paste(cnames[i],"table",sep="_"), matrix(,nrow=2,ncol=2))
}
当我输入时,例如:
> Honda_table
...returns:
[,1] [,2]
[1,] NA NA
[2,] NA NA
但是如果在原始迭代函数中我尝试分配列名,如下所示:
for (i in 1:length(cnames)){
assign(paste(cnames[i],"table",sep="_"), matrix(,nrow=2,ncol=2))
colnames(paste(cnames[i],"table",sep="_")) <- c("A","B")
}
...我收到此错误:
Error : attempt to set 'colnames' on an object with less than two dimensions
我不明白为什么会出现这种情况,因为在使用原始分配函数后,如果我查找任何表格的维度,例如:
>dim(honda_table)
...我得到:
[1] 2 2
这表示它是一个 2x2 维对象。
此外,我无法为矩阵单元格分配预设值,如下所示:
for (i in 1:length(cnames)){
assign(paste(cnames[i],"table",sep="_"), matrix(,nrow=2,ncol=2))
paste(cnames[i],"table",sep="_")[1,1] = 1
}
...没有收到此错误:
Error : incorrect number of subscripts on matrix
这是怎么回事?
谢谢。
我不确定这是最好的、最漂亮的方法,但似乎有效:
for (i in 1:length(cnames)){
tab<- matrix(,nrow=2,ncol=2)
colnames(tab)<- c("A","B")
assign(paste(cnames[i],"table",sep="_"), tab)
}
rm(tab)
经过多次建议后,我最终放弃了 assign 函数,而是简单地创建了一个表格向量