我想创建一个保存图(from ggplot)的函数.我有很多这样的情节,所以这将有助于我更有效地工作.
这是一个数据框:
### creating data frame
music <- c("Blues", "Hip-hop", "Jazz", "Metal", "Rock")
number <- c(8, 7, 4, 6, 11)
df.music <- data.frame(music, number)
colnames(df.music) <- c("Music", "Amount")
Run Code Online (Sandbox Code Playgroud)
然后我创建一个情节:
### creating bar graph (this part is OK)
myplot <- ggplot(data=df.music, aes(x=music, y=number)) +
geom_bar(stat="identity") +
xlab(colnames(df.music)[1]) +
ylab(colnames(df.music)[2]) +
ylim(c(0,11)) +
ggtitle("Ulubiony typ muzyki w?ród studentów")
Run Code Online (Sandbox Code Playgroud)
现在我想保存这个情节.pdf.
这有效:
pdf("Myplot.pdf", width=5, height=5)
plot.music.bad
dev.off()
Run Code Online (Sandbox Code Playgroud)
但是我想用一个函数自动化它,这个函数以我想要保存的图为参数.我不知道该怎么做; 这是我尝试过的:
save <- function(myplot){
plot<- myplot
pdf("lol.pdf", width=5, height=5)
plot
dev.off()
} …Run Code Online (Sandbox Code Playgroud) 我想绘制具有相同宽度的条形图.这是我的最小示例代码:
data <- data.frame(A = letters[1:17],
B = sample(1:500, 17),
C = c(rep(1, 5), rep(2, 6), rep(c(3,4,5), each = 2)))
ggplot(data,
aes(x = C, y = B, label = A,
fill = A)) +
geom_bar(stat = "identity", position = "dodge") +
geom_text(position = position_dodge(width = 0.9), angle = 90)
Run Code Online (Sandbox Code Playgroud)
条的宽度取决于变量中给出的组中的观察数C.我想让每个酒吧都有相同的宽度.
该facet_grid(~C)作品(条宽度相同)这不是我的意思:
ggplot(data,
aes(x = C, y = B, label = A,
fill = A)) +
geom_bar(stat = "identity", position = "dodge") +
geom_text(position = position_dodge(width …Run Code Online (Sandbox Code Playgroud) 在我的r部分文档中,我使用长代码,如:
```{r}
output <- "very long query for example url to some website............................................."
output
```
Run Code Online (Sandbox Code Playgroud)
有没有办法不让R自动包装代码,让我们说60个字符后?我尝试过tidy=TRUE, tidy.opts=list(width.cutoff=60)选项,但它不起作用.
我希望输出相同,因为我的查询输出是一些文本.我希望在很多行中显示整个内容,而不仅仅是在一行中开头.我该怎么做?
我想在ggplot中只为一个条形颜色.这是我的数据框:
area <- c("Pó?noc", "Po?udnie", "Wschód", "Zachód")
sale <- c(16.5, 13.5, 14, 13)
df.sale <- data.frame(area, sale)
colnames(df.sale) <- c("Obszar sprzeda?y", "Liczba sprzedanych produktów (w tys.)")
Run Code Online (Sandbox Code Playgroud)
和绘图代码:
plot.sale.bad <- ggplot(data=df.sale, aes(x=area, y=sale, fill=area)) +
geom_bar(stat="identity") +
scale_fill_manual(values=c("black", "red", "black", "black")) +
xlab(colnames(df.sale)[1]) +
ylab(colnames(df.sale)[2]) +
ggtitle("Porównanie sprzeda?y")
Run Code Online (Sandbox Code Playgroud)
我想只有一个彩色条和另外3个有默认颜色(暗灰色,不是黑色,对我来说看起来很糟糕).如何更改仅在条形图上的颜色或如何获取条形图的默认颜色名称而不是黑色?
有没有办法将函数输出microbenchmark::microbenchmark转换为数据框或矩阵?
例如
v <- rnorm(100)
m <- microbenchmark(mean(v), sum(v))
Run Code Online (Sandbox Code Playgroud)
输出
Unit: nanoseconds
expr min lq mean median uq max neval
mean(v) 6568 6979.5 9348.19 7390 7390 54600 100
sum(v) 0 1.0 353.57 411 411 8211 100
Run Code Online (Sandbox Code Playgroud)
我想稍后使用这个统计数据,所以我想把结果保存为数据框.但是as.data.frame(m)不起作用.
任何帮助赞赏.
我尝试创建我的Airflow服务.当我单独运行三个码头工作者(没有docker-compose)时,一切正常,但当我尝试使用同样的方法时,docker-compose我得到了错误.似乎气流没有看到数据库.
docker-compose.yml
version: '2'
services:
mysql:
image: "someregisty/mysql"
environment:
- MYSQL_ROOT_PASSWORD=somepassword
redis:
image: "someregisty/redis"
airflow:
image: "someregisty/airflow"
volumes:
- ./dags:/home/airflow/dags
- ./logs:/home/airflow/logs
- ./config/airflow.cfg:/home/airflow/airflow.cfg
- ./config/resolv.conf:/etc/resolv.conf
- ./config/somekeytab.keytab:/home/airflow/airflow.keytab
ports:
- "8484:8080"
environment:
- AIRFLOW__CELERY__BROKER_URL=redis://redis:6379/0
- AIRFLOW__CELERY__CELERY_RESULT_BACKEND=db+mysql://root:somepassword@mysql/airflow
- AIRFLOW__CORE__SQL_ALCHEMY_CONN=mysql://root:somepassword@mysql/airflow
- AIRFLOW__CORE__AIRFLOW_HOME=/home/airflow
- AIRFLOW__CORE__DAGS_FOLDER=/home/airflow/dags/
- AIRFLOW__CORE__PLUGINS_FOLDER=/home/airflow/plugins/
- AIRFLOW_SCHEDULER=true
- AIRFLOW_WEBSERVER=true
- AIRFLOW_WORKER=true
- AIRFLOW_KERBEROS=true
- AIRFLOW_KERBEROS_PRINCIPAL=prj_bdc@DCWP.PL
- AIRFLOW__KERBEROS__CCACHE=/home/airflow/kerberos.keytab.cache
- KRB5CCNAME=/home/airflow/kerberos.keytab.cache
depends_on:
- redis
- mysql
Run Code Online (Sandbox Code Playgroud)
我跑
docker-compose up -d
docker-compose exec mysql mysql -u root --password=somepassword -e "create …Run Code Online (Sandbox Code Playgroud) 我已经为大多数功能构建了一个带有单元测试的包。该包具有标准结构:
package:
- R/
- file1.R
- file2.R
- ...
- tests/
- testthat/
- tests_for_file1.R
- tests_for_file2.R
- ...
- ...
Run Code Online (Sandbox Code Playgroud)
devtools::check()在 R 控制台中调用函数不会给我任何错误
R CMD check results
0 errors | 1 warning | 1 note
Run Code Online (Sandbox Code Playgroud)
调用一个函数devtools::test()也成功
OK: 72
Failed: 0
Warnings: 0
Skipped: 0
Run Code Online (Sandbox Code Playgroud)
但是covr::package_coverage()给我这个结果
package Coverage: 0.00%
R/file1.R: 0.00%
R/file2.R: 0.00%
...
Run Code Online (Sandbox Code Playgroud)
为什么?
我正在尝试创建一个闪亮的应用程序,该应用程序首先使用OAuth进行授权(请参阅https://developers.google.com/identity/sign-in/web/sign-in),然后获取一个令牌,并使用来访问使用googlesheets4库的Google工作表。登录过程正常进行,这意味着我可以看到我的电子邮件(以及的其他数据googleUser.getBasicProfile()。似乎没有id_token返回。)最小示例:
app.R
library(shiny)
library(shinyjs)
library(googlesheets4)
shinyApp(
ui = fluidPage(
useShinyjs(),
tags$head(tags$script(src="https://apis.google.com/js/platform.js")),
tags$meta(name = "google-signin-scope", content = "profile email"),
tags$meta(name = "google-signin-client_id", content = "<CLIENT_ID>.apps.googleusercontent.com"),
includeScript("signin.js"),
div(id = "signin", class = "g-signin2", "data-onsuccess" = "onSignIn"),
actionButton("signout", "Sign Out", onclick="signOut();", class="btn-danger"),
with(tags, dl(dt("Email"), dd(textOutput("g.email")),
dt("Token"), dd(textOutput("g.id_token"))
)),
tableOutput("df")
),
server = function(input, output) {
output$g.email = renderText({ input$g.email }) # here my email is printed in the app
output$g.id_token = renderText({ input$g.id_token}) # no …Run Code Online (Sandbox Code Playgroud) r google-authentication google-oauth shiny google-sheets-api
我是初学者,在R中用3D绘图,我需要帮助.我试图绘制一些简单的抛物面
library(rgl)
x <- seq(-1,1, 0.2)
y <- x
f <- function(x,y){
-(x^2+y^2)
}
z <- outer(x,y, "f")
persp3d(x, y, z, col="gray")
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是:
我可以只绘制网格,还是使颜色透明,还可以看到"在后面"的部分?
如何在绘图上添加点(在曲面上,例如以其他颜色点(1,1,2)绘制)?