我正在构建一个闪亮的应用程序
我正在使用ggplot绘制图表.
当我鼠标悬停在图表上的点时,我想要一个工具提示,显示数据框中的一列(可自定义的工具提示)
能否请您建议最好的前进方向.
简单应用:
# ui.R
shinyUI(fluidPage(
sidebarLayout(
sidebarPanel(
h4("TEst PLot")),
mainPanel(
plotOutput("plot1")
)
)
))
# server.R
library(ggplot2)
data(mtcars)
shinyServer(
function(input, output) {
output$plot1 <- renderPlot({
p <- ggplot(data=mtcars,aes(x=mpg,y=disp,color=factor(cyl)))
p <- p + geom_point()
print(p)
})
}
)
Run Code Online (Sandbox Code Playgroud)
当我将鼠标悬停在点上时,我希望它显示mtcars $ wt
在dplyr中,我想排除包含单词"junk"的列,但是,可能没有任何列包含单词"junk".在这种情况下,dplyr应该返回所有列.但它没有返回.请参阅下面的单元测试用例
df<-data.frame(name=paste("name",1:5), age=1:5)
str(df)
# 'data.frame': 5 obs. of 2 variables:
# $ name: Factor w/ 5 levels "name 1","name 2",..: 1 2 3 4 5
# $ age : int 1 2 3 4 5
df1<-df%>%select(-contains("junk"))
str(df1)
# 'data.frame': 5 obs. of 0 variables
Run Code Online (Sandbox Code Playgroud)
我哪里错了?
dplyr
当我在检查值中有列表子集时,过滤器不起作用.当我分配给变量时,Samething可以工作.见下面的代码
df1<-data.frame(x=1:26, y=letters, stringsAsFactors = F)
templist<-list(alpha=df1)
res<-df1 %>% filter(y %in% templist$alpha$y)
nrow(res)
[1] 0
tempLetters <- templist$alpha$y
res<-df1 %>% filter(y %in% tempLetters)
nrow(res)
[1] 26
Run Code Online (Sandbox Code Playgroud)
我以为这曾经比较早.请帮忙.请注意,两个(y)中的列名称相同.
我已经更新dplyr
,tidyr
,pipeR
对CRAN刚才的最新版本(2017年1月4日)
下面的代码一直运行良好,直到我升级我的闪亮.现在它只打印出html文本.不将其渲染为html
ui.R
dataTableOutput("grid")
server.R
testLinks<-function(){
serial<-(1:2)
websites<-c("www.google.com","www.yahoo.com")
Link<-paste0("<a href=\"",websites,"\" target=\"_blank\">", websites,"</a>")
df<-data.frame(serial, websites,Link)
df
}
output$grid<-renderDataTable(testLinks())
Run Code Online (Sandbox Code Playgroud)
现在它只是将链接呈现为html文本
在升级之前,它用于将它们呈现为html链接.
任何帮助,非常感谢.
参考:http://dplyr.tidyverse.org/articles/programming.html
此代码工作正常:
df <- tibble(
g1 = c(1, 1, 2, 2, 2),
g2 = c(1, 2, 1, 2, 1),
a = sample(5),
b = sample(5)
)
my_summarise <- function(df, group_by) {
group_by <- enquo(group_by)
print(group_by)
df %>%
group_by(!!group_by) %>%
summarise(a = mean(a))
}
my_summarise(df, g1)
Run Code Online (Sandbox Code Playgroud)
但是,如果我们将此函数包装在另一个函数中并进行调用,则它将无效.是因为名称只传递了一个级别?
wrapped_my_Summarize <- function(wdf, w_group_by){
my_summarise(wdf, w_group_by)
}
wrapped_my_Summarize(df, g1)
Run Code Online (Sandbox Code Playgroud)
总的来说,我觉得上面的例子是一个冒险的例子
当存在多个分组变量时,group_by 的数据屏蔽不起作用。
下面粘贴代码
grpByCols <- "model"
mpg%>%
group_by(.data[[grpByCols]])
grpByCols <- c("model", "manufacturer")
mpg%>%
group_by(.data[[grpByCols]])
Run Code Online (Sandbox Code Playgroud)
第一个 group_by 有效,第二个失败。
粘贴下面的运行输出
> grpByCols <- "model"
>
> mpg%>%
+ group_by(.data[[grpByCols]])
# A tibble: 234 x 11
# Groups: model [38]
manufacturer model displ year cyl trans drv cty hwy fl class
<chr> <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
1 audi a4 1.8 1999 4 auto(l5) f 18 29 p compact
2 audi a4 1.8 1999 4 manual(m5) f 21 …
Run Code Online (Sandbox Code Playgroud) 测试用例:
library(dplyr)
library(plyr)
library(dplyr)
mtcars%>%rename(x=gear)
Run Code Online (Sandbox Code Playgroud)
这给出了错误.任何帮助将不胜感激.