我正在使用多个交互式矩阵,它们被合并到一个列表中,用于组织和Shiny渲染目的。由于生成的矩阵数量和矩阵列的数量,唯一的矩阵列名变得非常长,使得矩阵很难在R studio中查看。我需要查看由函数生成的临时矩阵以进行测试。
R pro是如何处理这类问题的呢?是否为了可视化的目的而截断矩阵的列名,同时为了处理的目的而保留长列名?或者,R pro是不是为矩阵名称和列名创建一个键索引,并分配矩阵名称,如mat1,mat2等,以及列名mat1Col1,mat1Col2等?后者对我来说似乎很难,矩阵列名更容易变得有些不言自明,即使很长。
下面发布的代码是一个编辑。实际代码中的矩阵列名比这个例子中显示的名称长得多。你可以看到矩阵被嵌入到一个列表中,长矩阵列名的一部分被提取出来并插入到列表名称中,用于嵌入矩阵标识。运行输出矩阵的函数会导致下图的上半部分,然后运行函数,输出带有嵌入矩阵的列表,结果会出现下图的下半部分:
的数据
代码:
create_Tmp1 <- function(element, variable) {
col_1 <- paste('Begin_testing_element', element, sep = "_")
col_2 <- paste('Run_tests_element', element, sep = "_")
col_3 <- paste('End_testing_element', element, sep = "_")
matTmp1 <- matrix(0, nrow = 3, ncol = 3)
colnames(matTmp1) <- c(col_1,col_2,col_3)
# For-loop to generate running table
for(i in seq(nrow(matTmp1))){
if(i > 1){matTmp1[i,col_1] = matTmp1[i-1,col_3]}
matTmp1[i,col_2] = variable
matTmp1[i,col_3] = matTmp1[i,col_1] + matTmp1[i,col_2]
}
matTmp1_to_list <- matTmp1
new_colnames <- sub("_element.*$", "", colnames(matTmp1))
colnames(matTmp1_to_list) <- new_colnames
listTmp1 <- list(matTmp1 = list())
listTmp1$matTmp1[[element]] <- matTmp1_to_list
return(listTmp1)
# return(matTmp1)
}
create_Tmp1("once_upon_a_time",5)
字符串
2条答案
按热度按时间kx7yvsdv1#
你可以为
"matrix"
类的对象写一个方法。这个方法可以替换列名,然后调用通常的print.default
。字符串
创建于2023-11-01使用reprex v2.0.2
igsr9ssn2#
也许你可以使用标签(据我所知,只用于 Dataframe )。
字符串