我试图在一个闪亮的应用程序中从用户的浏览器检索 cookie,为不同的用户生成不同的 UI。为了使用 Rshiny 中的 cookie,我遵循了本教程,并使用以下 javascript 代码扩展了shinyjs:
shinyjs.getcookie = function(params) {
var cookie = Cookies.get("id");
if (typeof cookie !== "undefined") {
Shiny.onInputChange("jscookie", cookie);
} else {
var cookie = "";
Shiny.onInputChange("jscookie", cookie);
}
}
shinyjs.setcookie = function(params) {
Cookies.set("id", escape(params), {
expires: 0.5
});
Shiny.onInputChange("jscookie", params);
}
shinyjs.rmcookie = function(params) {
Cookies.remove("id");
Shiny.onInputChange("jscookie", "");
}
Run Code Online (Sandbox Code Playgroud)
我还尝试在 R Shiny 模块中设置和获取 cookie,这可能很重要。
我可以在模块内设置 cookie,我可以从浏览器中验证这一点;然而,当我尝试获取 cookie 时,我始终得到 NULL。
我这样调用 server.R 中的模块:
user_auth_return <- observe({
callModule(
user_auth_module,
"user_auth"
)
})
Run Code Online (Sandbox Code Playgroud)
这是模块本身: …
我目前有一个引用的哈希和哈希包含的键数组.我想得到一个与我的数组键对应的值数组.
我知道如何在多行中执行此操作:
# Getting hash reference and array of keys.
my $hashRef = {
one => 'foo',
two => 'bar',
three => 'baz'
};
my @keys = ('one', 'three');
# Getting corresponding array of values.
my @values;
foreach my $key (@keys) {
push @values, $hashRef->{$key};
}
Run Code Online (Sandbox Code Playgroud)
但是,我相信必须有一个更好的方法,不使用循环.但不幸的是,我无法弄明白.如何从引用的哈希和键数组中有效地获取值数组; 如果可能,理想情况下在一行?
我很习惯使用R,但是我从未使用过RSQLite甚至是SQLite,所以我有一个关于如何最好地使用RSQLite将数据从R中的数据框添加到SQLite表的问题.
我知道我可以创建表并添加如下数据:
db <- dbConnect(SQLite(), dbname="Test.sqlite")
dbSendQuery(conn = db, "CREATE TABLE School (SchID INTEGER,
Location TEXT, Authority TEXT, SchSize TEXT)")
dbSendQuery(conn = db,
"INSERT INTO School
VALUES (1, 'urban', 'state', 'medium')")
dbSendQuery(conn = db,
"INSERT INTO School
VALUES (2, 'urban', 'independent', 'large')")
dbSendQuery(conn = db,
"INSERT INTO School
VALUES (3, 'rural', 'state', 'small')")
Run Code Online (Sandbox Code Playgroud)
但是,要执行这样的多个INSERT语句,我需要使用for循环解析数据帧的所有行.是否可以使用向量和单个INSERT使用数据框中的所有值填充SQLite表?
我希望能够将不同长度的 xlsx 文件导入到 R 中。我目前正在使用 R 的 xlsx 包中的 read.xlsx 函数将 xlsx 文件导入到 R 中,不幸的是它会删除空行。有没有一种方法可以导入 xlsx 文件的每一行,直到最后一行内容而不删除空行?