【问题标题】:Creating a dynamic list with R to use it in shiny使用 R 创建动态列表以在闪亮中使用它
【发布时间】:2016-04-22 19:49:03
【问题描述】:

我需要格式化一个列表,以便列表项在我闪亮的应用程序上显示为单选按钮。以下是我的列表当前格式的示例:

mylist = list("Choice 1"=1, "Choice 2"=2, "Choice 3"=3)

列表应该是动态生成的。将查询该列表以确定正确的名称,以替换“Choice 1”、“Choice 2”和“Choice 3”。

我尝试使用list<-append,但它不解释变量名。示例:

var = "SimpleTest"
mylist=list()
mylist<-append(mylist,list(var=1))

电流输出:

# $var
# [1] 1

我想要的输出是:

$SimpleTest
[1] 1

【问题讨论】:

  • 试试mylist&lt;-append(mylist,setNames(list(1),var))
  • 哦,非常感谢,我解决这个问题已经 3 小时了!
  • 很高兴它有帮助。另一种选择:mylist[[var]]&lt;-1.
  • @KingOfBabu 我下面的回答能解决你的问题吗?

标签: r list append shiny


【解决方案1】:

我编辑了您的帖子以澄清问题并提高可读性。

如果我理解正确,您正在尝试更新该列表元素的名称(并且仅是名称),其值为 1。

mylist = list("Choice 1"=1, "Choice 2"=2, "Choice 3"=3)
var = "SimpleTest"
mylist
# $`Choice 1`
# [1] 1
# $`Choice 2`
# [1] 2
# $`Choice 3`
# [1] 3

如果是这样,以下代码将执行此操作。分配值为 1 的列表元素的名称,该字符串保存在变量 var 中:

names(mylist)[which(mylist==1)]=var
mylist
# $SimpleTest
# [1] 1
# $`Choice 2`
# [1] 2
# $`Choice 3`
# [1] 3

【讨论】:

    【解决方案2】:

    我在这里遇到了完全相同的问题,我是如何解决的:

    varnames <-c("Choice 1","Choice 2","Choice 3")
    mylist<- setNames(as.list(seq(1,length(varnames))),varnames)
    mylist
    $`Choice 1`
    [1] 1
    $`Choice 2`
    [1] 2
    $`Choice 3`
    [1] 3
    

    现在您可以动态更新您的 selectInputs!

    【讨论】:

      猜你喜欢
      • 2020-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-06
      • 2018-10-19
      • 1970-01-01
      • 2021-09-26
      • 2015-06-13
      相关资源
      最近更新 更多