我正在使用Spark 1.3,并希望使用python接口(SparkSQL)加入多个列
以下作品:
我首先将它们注册为临时表.
numeric.registerTempTable("numeric")
Ref.registerTempTable("Ref")
test = numeric.join(Ref, numeric.ID == Ref.ID, joinType='inner')
Run Code Online (Sandbox Code Playgroud)
我现在想基于多个列加入它们.
我得到SyntaxError:语法无效:
test = numeric.join(Ref,
numeric.ID == Ref.ID AND numeric.TYPE == Ref.TYPE AND
numeric.STATUS == Ref.STATUS , joinType='inner')
Run Code Online (Sandbox Code Playgroud) 有关如何在Stack Overflow上创建Minimal,Complete和Verifiable示例的资源,以及如何创建一个很好的R可重现示例.但是,对于闪亮的问题没有类似的指导原则,而遵守某些标准使得更有可能给出质量答案,从而解决您的问题.
但是,提出一个好的闪亮问题可能很困难.闪亮的应用程序通常庞大而复杂,使用多个数据源,并且代码通常分成多个文件,因此很难与其他人共享易于重现的代码.即使可能引起问题server.R,如果没有ui.R(也可能是样式表或其他文件global.R)的内容,该示例是不可再现的.单独复制粘贴所有这些文件的内容是麻烦的,并且需要其他用户重新创建相同的文件结构以能够重现该问题.
所以; 如何将您的闪亮应用程序转换为一个良好的可重现的示例?
我正在构建一个闪亮的应用程序
我正在使用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
注意:我已经在有光泽的googlegroups和SO中阅读了关于此对象的几乎所有讨论.
我需要一个指示器,显示闪亮的服务器正忙.我曾尝试过闪亮的孵化器,但问题是我无法为进度条设置最大值.我不想要这样的东西:http://shiny.rstudio.com/gallery/progress-example.html 我需要的是:1-显示繁忙的指示器消息和条形图(即只是一个简单的动画条,只要服务器正在计算,就不需要显示填充条 - 无论您正在查看哪个选项卡,都会显示它.(不仅在相关标签中,而且在标签集的顶部)
谢谢
我正在尝试Shiny而我喜欢它.我构建了一个小应用程序,学生上传一个csv文件,然后选择一个因变量和自变量,然后R计算一个线性回归.它工作正常.我把它上传到:
http://carlosq.shinyapps.io/Regresion
[如果需要,可以使用此文件进行测试."beer"是因变量,除"id"之外的其余变量是独立的]
这是server.R:
# server.R
library(shiny)
shinyServer(function(input, output) {
filedata <- reactive({
infile <- input$file1
if (is.null(infile)){
return(NULL)
}
read.csv(infile$datapath)
})
output$dependent <- renderUI({
df <- filedata()
if (is.null(df)) return(NULL)
items=names(df)
names(items)=items
selectInput("dependent","Select ONE variable as dependent variable from:",items)
})
output$independents <- renderUI({
df <- filedata()
if (is.null(df)) return(NULL)
items=names(df)
names(items)=items
selectInput("independents","Select ONE or MANY independent variables from:",items,multiple=TRUE)
})
output$contents <- renderPrint({
input$action
isolate({
df <- filedata()
if (is.null(df)) return(NULL)
fmla <- as.formula(paste(input$dependent," ~ ",paste(input$independents,collapse="+")))
summary(lm(fmla,data=df))
}) …Run Code Online (Sandbox Code Playgroud) 我有这个数据框,它看起来像这样:
我需要从列中的第一个字符开始,将整个值放入a中,然后在末尾放置一个计数器,在a列中重复递增.此计数器必须始终为三.最终结果如下:
所以没有什么戏剧性的,我能用以下代码做这件事(准备给人留下深刻的印象):
library(stringr)
tk <- ""
for (i in 1:nrow(df)){
if (tk == df$an[i]){
counter <- counter + 1
} else {
tk <- df$an[i]
counter <- 1
}
df$ap[i] <- counter
}
df$ap <- paste0(substr(df$at, 1, 1), df$an, str_pad(df$ap, 3, pad="0"))
Run Code Online (Sandbox Code Playgroud)
我对这次灾难不满意.它似乎不是很"R",我非常希望永远不要让它看到光明的一天.我怎样才能让这更"R"?
我很欣赏这个建议.
嗨,我有一百万个问题试图将我的应用程序发布到shiny.io.
首先,我在我的计算机中安装了Rtools 3.2并设置为Path,但在注册表中无法识别.没关系,这段代码应该解决它:
install.packages("installr")
library(installr)
install.Rtools(choose_version = FALSE, check = TRUE, use_GUI = TRUE,
page_with_download_url = "http://cran.r-project.org/bin/windows/Rtools/, keep_install_file=TRUE")
install.packages("devtools")
library(devtools)
devtools::install_github('rstudio/shinyapps')
Run Code Online (Sandbox Code Playgroud)
接下来,将我的应用部署到我的shiny.io帐户:
library(shinyapps)
shinyapps::setAccountInfo(name='xxxx', token='xxxxxxxxxx', secret='xxxxxxxx')
Run Code Online (Sandbox Code Playgroud)
然后我的应用程序开始在浏览器中运行,然后单击发布到我闪亮的帐户.但是,在部署应用程序时,它会显示以下错误:
Preparing to deploy application...Error: /v1/applications/ 400 - Validation Error
Execution halted
Run Code Online (Sandbox Code Playgroud)
任何想法可能是什么问题?谢谢.
我尝试用ggplot2制作一个条形图,并且面临着为NA定义颜色的一些问题.
ggh <- ggplot(data=dat, aes(x=var1, fill=var2))+
geom_bar(position="dodge")+
scale_fill_manual(
values=c("s"="steelblue", "i"="darkgoldenrod2", "r"="firebrick4", na.value="black"))
Run Code Online (Sandbox Code Playgroud)
在我的var2中,我有价值观c("s", "i", "r", NA).由于某些原因,我上面的代码scale_fill_manual对NA不起作用,即使它适用于所有其他值.
有人可以帮我找出原因吗?
谢谢您的帮助
我是一个非常新手的R程序员,我正在尝试将旧的SAS代码转换为R.我需要根据条件替换值,如果条件为假,请不要管它们.我已经搜索了这个并尝试了许多解决方案,但无济于事.我这样做的原因是对事件的第一个实例进行分类(在这种情况下,医生开处方).如果他们写处方的第一个月是去年的5月,他们的开始月份(新编)是5.如果是6月,那么6等我从今年6月开始倒退,我想更新他们的如果找到早期处方,则开始月份(newwriter).如果没有找到早期处方,我想单独留下这个号码.这是我正在使用的代码:
newwriters$newwriter=ifelse(newwriters$MTRx_06_30_2017>0,18,NULL)
newwriters$newwriter=ifelse(newwriters$MTRx_05_31_2017>0,17,NULL)
newwriters$newwriter=ifelse(newwriters$MTRx_04_30_2017>0,16,NULL)
newwriters$newwriter=ifelse(newwriters$MTRx_03_31_2017>0,15,NULL)
newwriters$newwriter=ifelse(newwriters$MTRx_02_28_2017>0,14,NULL)
newwriters$newwriter=ifelse(newwriters$MTRx_01_31_2017>0,13,NULL)
newwriters$newwriter=ifelse(newwriters$MTRx_12_31_2016>0,12,NULL)
newwriters$newwriter=ifelse(newwriters$MTRx_11_30_2016>0,11,NULL)
newwriters$newwriter=ifelse(newwriters$MTRx_10_31_2016>0,10,NULL)
Run Code Online (Sandbox Code Playgroud)
问题是,如果在那个月没有找到处方,它会不断将更高的值更改为0.我希望它只留下价值观.我已经尝试了以下所有内容但没有成功:
newwriters$newwriter=ifelse(newwriters$MTRx_06_30_2017>0,18,newwriters$newwriter)
newwriters$newwriter=ifelse(newwriters$MTRx_06_30_2017>0,18,newwriters[,16])
newwriters$newwriter=ifelse(newwriters$MTRx_06_30_2017>0,18,)
Run Code Online (Sandbox Code Playgroud)
正如我所提到的,我是编写R代码的新手.我确信有更好/更快/更有效的方法,但我不确定还有什么可以尝试.在此先感谢您的帮助!
我有一个未知结构的列表(嵌套)总是以命名向量终止.我想用列表中的所有句点或原子向量名替换下划线.有rapply申请functios列出的元素,但如何申请在列表/原子向量的名字?我是基于R的解决方案,但请为其他人分享所有解决方案.
x <- list(
urban = list(
cars = c('volvo', 'ford'),
food.dining = list(
local.business = c('carls'),
chain.business = c('dennys', 'panera')
)
),
rural = list(
land.use = list(
farming =list(
dairy = c('cows'),
vegie.plan = c('carrots')
)
),
social.rec = list(
community.center = c('town.square')
),
people.type = c('good', 'bad', 'in.between')
),
other.locales = c('suburban'),
missing = list(
unknown = c(),
known = c()
),
end = c('wow')
)
Run Code Online (Sandbox Code Playgroud)
## $urban
## $urban$cars
## [1] "volvo" …Run Code Online (Sandbox Code Playgroud)