考虑以下列表:
x <- list("a" = list("b", "c"),
"d" = list("e", "f" = list("g", "h")),
"i" = list("j", "k" = list("l" = list("m", "n" = list("o", "p")))))
Run Code Online (Sandbox Code Playgroud)
值得一提的是:
鉴于x,我的目标是输出数据框:
y <- data.frame(
main_level = c(rep("a", 2), rep("d", 3), rep("i", 4)),
level1 = c("b", "c", "e", rep("f", 2), "j", rep("k", 3)),
level2 = c(NA, NA, NA, "g", "h", NA, "l", "l", "l"),
level3 = c(NA, NA, NA, NA, NA, NA, "m", "n", "n"),
level4 = c(NA, NA, …Run Code Online (Sandbox Code Playgroud) 考虑以下:
df <- data.frame(X = c(5000, 6000, 5500, 5000, 5300))
count_above <- function(vector)
{
counts <- vector()
counts[1] <- 0
for (i in 2:length(vector))
{
temp <- vector[1:i]
counts <- c(counts, sum(temp < vector[i]))
}
return(counts)
}
Run Code Online (Sandbox Code Playgroud)
这给了我正确的输出:
count_above(df$X)
[1] 0 1 1 0 2
Run Code Online (Sandbox Code Playgroud)
例如,这里的(列)向量是
5000
6000
5500
5000
5300
Run Code Online (Sandbox Code Playgroud)
在最顶层5000,它上面没有任何值.所以这给了价值0.
在6000,有一个值高于它并且小于6000:5000.所以这给了价值1.
在5500,它上面有两个值,其中一个小于5500,所以这给出了值1,依此类推.
有没有办法在不使用循环的情况下写出来?
考虑以下:
> n <- 1:4
> n
[1] 1 2 3 4
Run Code Online (Sandbox Code Playgroud)
我想转换,n以便我得到一个字符串'1', '2', '3', '4'(其中R,将显示为"'1', '2', '3', '4'").
当我使用sqlQuery()变量字符串时,通常会出现这种情况.遗憾的是,我对RegEx不够熟悉,无法轻松执行此操作.
我最接近的是
> paste0(n, collapse = "", sep = ",")
[1] "1,2,3,4,"
Run Code Online (Sandbox Code Playgroud)
它不会在每个数字周围加上单引号,并且最后会有额外的逗号.
考虑以下简化示例,其中所有可能的 2 x 2 矩阵均包含一个 1 和其余 0。
library(arrangements)
# define function
generate_matrices <- function(nrow, ncol, ones_count) {
vectors <- permutations(c(
rep(1, ones_count),
rep(0, nrow * ncol - ones_count)
))
# remove redundancies
vectors <- vectors[!duplicated(vectors),]
# list of matrices
out <- list()
for (i in 1:ncol(vectors)) {
out[[i]] <- matrix(
data = vectors[,i],
nrow = nrow,
ncol = ncol,
byrow = TRUE
)
}
return(out)
}
Run Code Online (Sandbox Code Playgroud)
运行函数生成所有带有一个 1 的 2 x 2 矩阵:
generate_matrices(nrow = 2, ncol = 2, …Run Code Online (Sandbox Code Playgroud) 这是我现在的代码:
library(ggplot2)
normal <- function(mu, sigma, x){
1/(sigma*sqrt(2*pi))*exp(-((x-mu)/sigma)^2)
}
normal_expr <- function(){
expression(N~bgroup('(',paste(x, '; ',mu, ',', sigma),')') == frac(1, sigma~sqrt(2*pi)) ~
exp~bgroup('[',-~bgroup('(',frac(x-mu,sigma),')')^2,']'))
}
ggplot(data.frame(x=c(-3,3)), aes(x=x, color=g)) +
stat_function(data=data.frame(x=c(-2, 3.5), g=factor(1)), fun=normal, geom='line',
args=list(mu=0.5, sigma=2)) +
stat_function(data=data.frame(x=c(-2, 3.5), g=factor(2)), fun=normal, geom='line',
args=list(mu=1, sigma=2)) +
scale_x_continuous(breaks=seq(from=-2, to = 3, by=1)) +
ylab(normal_expr()) +
coord_cartesian(ylim=c(0, 0.2)) +
scale_color_manual('',values=c('blue','red', 'red'),
labels=c(expression(N(mu == 0.5, sigma==2)),expression(N(mu == 1, sigma==2)))) +
theme(panel.background = element_rect(fill='white'),
#panel.background has a gray-like color by default
panel.border=element_rect(fill=NA),
#panel.border puts in fill by …Run Code Online (Sandbox Code Playgroud) library(shiny)
library(shinyTree)
server <- shinyServer(function(input, output, session) {
output$tree <- renderTree({
sss=list( 'I lorem impsum'= list(
'I.1 lorem impsum' = structure(list('I.1.1 lorem impsum'='1', 'I.1.2 lorem impsum'='2'),stopened=TRUE),
'I.2 lorem impsum' = structure(list('I.2.1 lorem impsum'='3'), stopened=TRUE)))
attr(sss[[1]],"stopened")=TRUE
sss
})
})
ui <- shinyUI(
shiny::fluidPage(
h4('Shiny hierarchical checkbox')
,shinyTree("tree", checkbox = TRUE)
)
)
shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)
我想设置一个变量,如果 I.1.2。lorem impsum 被选中,它的值为4,例如。
我所知道的是我必须使用reactive(). 正如你在这里看到的,我已经学会了如何用checkboxGroupInputs来做到这一点,但我不清楚这是否可以在shinyTree. 我在网上找不到这方面的文档。
如何才能做到这一点?
多次单步执行代码后,我无法找到具体导致此错误的原因。我希望有人以前见过这个错误。
以下是我认为与该问题相关的内容:
#### Load packages
library(lubridate)
MONTH <- 1
YEAR <- 2018
# Last day of month
last_day_of_mth <- function(YEAR, MONTH){
MONTH_BEGIN <- as.POSIXlt(paste0(YEAR, "-", MONTH, "-1"))
MONTH_END <- MONTH_BEGIN
day(MONTH_END) <- day(MONTH_BEGIN)
month(MONTH_END) <- month(MONTH_END) + 1
day(MONTH_END) <- day(MONTH_END) - 1
return(as.character(MONTH_END))
}
Run Code Online (Sandbox Code Playgroud)
此代码加载一堆外部文件,其中source()不包含任何其他包或其他函数。他们只是从 Google Analytics API 查询数据,或者加载 .csv 文件、操作数据帧,并以 .csv 文件形式输出适当的输出。
由于某些奇怪的原因,通过运行这 10 个文件后source(),它吐出
> last_day_of_mth(2018, 1)
[1] "2018-03-02 06:00:00"
Run Code Online (Sandbox Code Playgroud)
这显然是不正确的——它应该是2018-01-31。
考虑以下字符串:
x = "a (b, c), d [e, f (g, h)], i (j, k (l (m, n [o, p])))"
Run Code Online (Sandbox Code Playgroud)
我的目标是获取该字符串并将其转换为以下列表:
list("a" = list("b", "c"),
"d" = list("e", "f" = list("g", "h")),
"i" = list("j", "k" = list("l" = list("m", "n" = list("o", "p")))))
$a
$a[[1]]
[1] "b"
$a[[2]]
[1] "c"
$d
$d[[1]]
[1] "e"
$d$f
$d$f[[1]]
[1] "g"
$d$f[[2]]
[1] "h"
$i
$i[[1]]
[1] "j"
$i$k
$i$k$l
$i$k$l[[1]]
[1] "m"
$i$k$l$n
$i$k$l$n[[1]]
[1] "o"
$i$k$l$n[[2]]
[1] "p"
Run Code Online (Sandbox Code Playgroud)
第一个问题是尝试分离每个组件:
x = …Run Code Online (Sandbox Code Playgroud) 考虑以下:
library(shiny)
library(shinyTree)
server <- shinyServer(function(input, output, session) {
output$tree <- renderTree({
list( 'I lorem impsum'= list(
'I.1 lorem impsum' = structure(list('I.1.1 lorem impsum'='1', 'I.1.2 lorem impsum'='2'),stselected=TRUE),
'I.2 lorem impsum' = structure(list('I.2.1 lorem impsum'='3'), stselected=TRUE)))
})
})
ui <- shinyUI(
shiny::fluidPage(
h4('Shiny hierarchical checkbox')
,shinyTree("tree", checkbox = TRUE)
)
)
shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点,以便默认情况下不选择上述任何一项,但仍然显示?
stselected = FALSE如果我在上面的代码中设置两者,我得到
这不是我想要的;我只想取消选中上面的复选框。
有关带有代码的更多文档的在线参考链接将非常有帮助。的包文档shinyTree没有帮助。
请考虑以下代码:
library(ISLR)
row_list <- structure(list(`1` = 1:40, `2` = 41:79, `3` = 80:118, `4` = 119:157,
`5` = 158:196, `6` = 197:235, `7` = 236:274, `8` = 275:313,
`9` = 314:352, `10` = 353:392),
.Names = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10"))
test <- row_list[[1]]
train <- setdiff(unlist(row_list), row_list[[1]])
Run Code Online (Sandbox Code Playgroud)
> glm(mpg ~ poly(horsepower, 1), data = Auto, subset = train)
Call: glm(formula = mpg ~ poly(horsepower, 1), data = Auto, subset = train)
Coefficients:
(Intercept) …Run Code Online (Sandbox Code Playgroud)