You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中如何提取矩阵维度名并将其存入单独的向量中?

实现方法

你可以直接用R内置的colnames()函数提取shinyMatrix输入矩阵的列名,只需在原有逻辑的基础上新增少量代码即可,修改后的完整可运行代码如下:

library(shiny) 
library(shinyMatrix) 

m <- matrix(runif(2), 1, 2, dimnames = list(c("Values"), c(1:2))) 

ui <- fluidPage(   
  titlePanel("Matrix inputs"),   
  sidebarPanel(     
    width = 6,     
    matrixInput(       
      "sample",       
      value = m,       
      rows = list(extend = FALSE),       
      cols = list(extend = TRUE, names = TRUE, editableNames = TRUE, delete = TRUE),
      class = "numeric"
      )   
    ),   
  mainPanel(     
    width = 6,     
    plotOutput("scatter")   
    ) 
  ) 

server <- function(input, output, session) {   

   output$scatter <- renderPlot({plot(1:ncol(input$sample),input$sample,xlab="Nbr",ylab="Values")}) 

   # 原有提取矩阵值的逻辑
   oe1 <- reactive({
     req(input$sample)
     input$sample
   })
   observeEvent(oe1(),{sample.R <<- oe1()})
   
   # 新增:提取列名存为单独向量
   col_names <- reactive({
     req(input$sample)
     colnames(input$sample)
   })
   # 同步列名到全局环境,控制台输入sample_colnames即可查看
   observeEvent(col_names(),{sample_colnames <<- col_names()})
   
} 

shinyApp(ui, server)

修改后启动App,你可以随时修改矩阵的列名、增减列,RStudio全局环境中的sample_colnames会实时同步最新的列名向量;如果是在App内部做后续计算,直接调用col_names()这个响应式对象即可获取当前最新的列名。

内容的提问来源于stack exchange,提问作者Curious Jorge - user9788072

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 18:54:03