我有一个数据框,这些值为虚拟值,我想对它们进行lm回归.其中一个变量是分组连续变量,如下所示
df <- data.frame("y" = c(10, 11, 12, 13, 14),
"x" = as.factor(c("100-102", "103-105", "106-108", "109-111", "112-114")))
Run Code Online (Sandbox Code Playgroud)
我想回归y~x,一种方法是用它们的平均数值替换x因子.这可以使用正则表达式轻松完成.
另一种方法是创建其他行并展开数据集,使其看起来像这样
data.frame("y" = c(10, 10, 10, 11, 11, 11......),
"x" = c(100, 101, 102, 103, 104, 105......))
Run Code Online (Sandbox Code Playgroud)
有没有这样做的功能?
我想首先创建其他变量,如x1,x2,x3,然后使用reshape2包将x列转换为行.
tidyr的扩展函数只接受没有引号的列名.有没有办法可以传入一个包含例如列名的变量
# example using gather()
library("tidyr")
dummy.data <- data.frame("a" = letters[1:25], "B" = LETTERS[1:5], "x" = c(1:25))
dummy.data
var = "x"
dummy.data %>% gather(key, value, var)
Run Code Online (Sandbox Code Playgroud)
这给出了一个错误
Error: All select() inputs must resolve to integer column positions.
The following do not:
* var
Run Code Online (Sandbox Code Playgroud)
这是使用匹配函数解决的,该函数给出了所需的列位置
dummy.data %>% gather(key, value, match(var, names(.)))
Run Code Online (Sandbox Code Playgroud)
但是这种方法对于扩散函数不起作用
dummy.data %>% spread(a, match(var, names(.)))
Error: Invalid column specification
Run Code Online (Sandbox Code Playgroud)
收集和传播函数采用不同的列规范.聚集采用列索引,而传播没有提到它想要的
这不是关于使用 renderUI 创建模块。使用我理解的 renderUI,您可以在 UI 函数中放置一个占位符,然后在服务器函数中编写控件/小部件。
模块分为两部分。您必须使用 callModule() 将一部分添加到 UI 函数,另一部分添加到服务器函数。
我有一个滑块模块。我想在单击“添加”操作按钮时将其添加到井面板。如果它有帮助,您可以考虑在单击按钮时多次复制模块。重复的模块应该都是独立的。
视觉上
我想知道一个动作按钮如何在 UI 功能内添加模块的 UI 部分,在服务器功能内添加服务器部分。
#Dynamically adding modules
library(shiny)
#slider module ------------------------
sliderUI <- function(id) {
ns <- NS(id)
sliderInput(ns("bins"), "Number of Bins:", min = 1, max = 5, value = 3)
}
slider <- function(input, output, session) {}
#shiny app ------------------------
ui <- fixedPage(
fixedRow(
column(width = 4, wellPanel(
h4("Slider Module"),
sliderUI("slider"),
actionButton("addSliderModule", "Add Slider Module"))
),
column(width = 4, wellPanel(
h4("Dynamic Loading Modules"),
p("Clicking on …Run Code Online (Sandbox Code Playgroud) 给出一个列表字典
vd = {'A': [1,0,1], 'B':[-1,0,1], 'C':[0,1,1]}
Run Code Online (Sandbox Code Playgroud)
我想明智地添加列表元素.所以我想将列表A中的第一个元素添加到列表B的第一个元素,反之亦然,复杂性是你不能依赖标签A,B,C.它可以是任何东西.第二,字典的长度也是可变的.这里是3.但它可能是30.
我需要的结果是列表[0,1,3]