1

我知道我在问一个关于 R 包的问题,​​这个问题不是很清楚(只有 5 个标签……其中一个来自我之前的问题),但我仍然希望我能在这里展开讨论。

我已经阅读了textinput.typeaheadShinysky 包中的文档。但是,文档留下了很多问题。

我正在尽力通过以下示例弄清楚如何使用它:

textInput.typeahead(
        id="thti"
        ,placeholder="type 'name' or '2'"
        ,local=data.frame(name=c("name1","name2"),info=c("info1","info2"))
        ,valueKey = "name"
        ,tokens=c(1,2)
        ,template = HTML("<p class='repo-language'>{{info}}</p> <p class='repo-name'>{{name}}</p> <p class='repo-description'>You need to learn more CSS to customize this further</p>")

用法

textInput.typeahead(id, placeholder, local, valueKey, tokens, template, limit = 20)

updateTextInput.typeahead(session, id, dataset, valueKey, tokens, template, limit = 20, placeholder = "")

第一个问题:没有讨论这两种方法之间的实际区别。有什么区别,为什么有人要选择一个而不是另一个?

论据

tokens
一个长度等于 nrow(local) 的列表,其中每个元素都是字符串标记数组。键入标记将选择相应的行

这里弹出的第一件事(除了'corresponding'的拼写错误)是令牌应该是一个列表。但是,当我查看此处提供的示例时,参数显示为,tokens=c(1,2). 这是一个向量,而不是一个列表。

即使向量没问题,我也不太确定这是做什么的。Typing the tokens will select the correponding rows. 这是否意味着我必须明确告诉 Shinysky 在哪里寻找才能填充预先输入的内容?

模板
关于如何显示内容的 hogan 模板,例如 '<p> name</p>' 其中 name 是本地变量之一

因此,我不仅需要typeahead使用列表或向量显示在行中查看的位置,而且还需要显示要查看的列。这个对吗?如果是这样,为什么该示例显示 2 个列名: {info}{name}

limit
在 typeahead 下拉列表中显示的命中数上限的整数

这如何影响将所有值加载到预输入中的内存需求?

无论如何,感谢您阅读本文。我希望我们能弄清楚如何在这个包中最好地使用这个工具。

4

1 回答 1

0

以下是我的理解:

  1. textInput.typeahead对比updateTextInput.typeahead

textInput这和 and是一样的updateTextInput,一个是初始化一个新的输入,另一个是更新一个已有的输入

  1. 令牌

是的,它接受一个向量。我认为这就像一个快捷方式或rowname数据框的每一行。因此,如果您键入rowname(或行号),它会显示您想要的行。

  1. 模板

您可以自定义每行数据的提示框中显示的内容。所以这里的例子只会显示name列,但是你可以选择显示任何你喜欢的列

  1. 限制

这可能只是控制要显示的行数。我想所有的数据框都需要在内存中。

于 2016-04-01T03:18:31.890 回答