R 用向量命名
我正在尝试创建一个包含列和行名称的空矩阵:R 用向量命名,r,R,我正在尝试创建一个包含列和行名称的空矩阵: tbl = list.files(pattern="*.csv") col_names <- unique(tbl) mat_master_EOD <- matrix(0, nrow = length(data_rd[,1]),ncol = 82) colnames(mat_master_EOD) <- col_names rownames(mat_master_EOD) <- data_rd[,1] 问题是我有80列,只有
tbl = list.files(pattern="*.csv")
col_names <- unique(tbl)
mat_master_EOD <- matrix(0, nrow = length(data_rd[,1]),ncol = 82)
colnames(mat_master_EOD) <- col_names
rownames(mat_master_EOD) <- data_rd[,1]
问题是我有80列,只有20个名字。我想为每个名称设置4列,第一列为“加入”,第二列为“说明”。应该是这样的:
Accession Description F1.csv_1 F1.csv_2 F1.csv_3 F1.csv_4 F2.csv_1 F2.csv_2 F2.csv_3 and so on...
每个“col_名称”创建四个名称的一种方法:
col_names <- c("F1.csv", "F10.csv")
paste0(rep(col_names, each = 4), "_", 1:4)
# [1] "F1.csv_1" "F1.csv_2" "F1.csv_3" "F1.csv_4" "F10.csv_1" "F10.csv_2" "F10.csv_3"
# [8] "F10.csv_4"
col_name我认为这是不可能的(我不明白你为什么想要它)。你可以创建一个20*4*nrow数组,只命名两个维度。我不完全明白你的意思,但我想把所有数据保存在一个表中。我也不完全明白你的意思。矩阵的所有列都已命名,或者没有。这两者之间没有任何区别。您可能应该重新构造数据。我想命名所有列。第一个->加入,第二个->说明,之后是4列名为F1~、4列名为F2~、4列名为F3~和4列名为F4~等等。直到我达到F20~。因此,它总共给出了82个命名列。当然,我可以手动创建一个向量,但我懒得写所有这些名称。希望我现在解释得很好。EDITEDname\u cols您认为可以对它们进行排序吗?>标题(名称)[1]“F1.csv_1”“F1.csv_2”“F1.csv_3”“F1.csv_4”“F10.csv_1”“F10.csv_2”。我希望F1后面有F2,而不是F10…如果“col_名称”与您描述的一样规则,您可以从头开始创建名称:paste0(“F”,rep(1:20,每个=4),“.csv_u”,1:4)
。
col_names <- c("F1.csv", "F10.csv")
paste0(rep(col_names, each = 4), "_", 1:4)
# [1] "F1.csv_1" "F1.csv_2" "F1.csv_3" "F1.csv_4" "F10.csv_1" "F10.csv_2" "F10.csv_3"
# [8] "F10.csv_4"