我的目标是一个复合图,它结合了散点图和2个图来进行密度估算.我面临的问题是由于密度图的缺失轴标记和散点图的图例,密度图未能与散点图正确对齐.它可以通过播放arround来调整plot.margin.但是,这不是一个更好的解决方案,因为如果对图形进行更改,我将不得不一遍又一遍地进行调整.有没有办法以某种方式定位所有绘图,以便实际绘图面板完美对齐?
我尽量保持代码尽可能小,但为了重现问题,它仍然是相当多的.
library(ggplot2)
library(gridExtra)
df <- data.frame(y = c(rnorm(50, 1, 1), rnorm(50, -1, 1)),
x = c(rnorm(50, 1, 1), rnorm(50, -1, 1)),
group = factor(c(rep(0, 50), rep(1,50))))
empty <- ggplot() +
geom_point(aes(1,1), colour="white") +
theme(
plot.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text.x = element_blank(),
axis.text.y = element_blank(),
axis.ticks = element_blank()
)
scatter <- ggplot(df, aes(x = x, y = y, color = group)) …Run Code Online (Sandbox Code Playgroud) 我正在尝试将我在 R 中生成的向量作为新列添加到 sqlite 表中。为此,我想使用dplyr(dbplyr根据此处的这篇文章,我安装了最新的开发版本以及软件包)。我试过的:
library(dplyr)
library(DBI)
#creating initial database and table
dbcon <- dbConnect(RSQLite::SQLite(), "cars.db")
dbWriteTable(dbcon, name = "cars", value = cars)
cars_tbl <- dplyr::tbl(dbcon, "cars")
#new values which I want to add as a new column
new_values <- sample(c("A","B","C"), nrow(cars), replace = TRUE)
#attempt to add new values as column to the table in the database
cars_tbl %>% mutate(new_col = new_values) #not working
Run Code Online (Sandbox Code Playgroud)
实现这一目标的简单方法是什么(不一定使用 dplyr)?
我正在使用stargazer,我想LaTeX为一个简单的lm对象生成一个输出.问题是我无法设置align = TRUE而不会收到错误.
LaTeX错误:\浮点外的标题.
我查了一下,消息说错了.将Stargazer输出直接复制到Latex文档中可以正常工作.将其复制到rmarkdown文档中会产生相同的错误(这并不奇怪,但我只是想确定).在玩了一下后,我发现rmarkdown如果重要的星(*)被移除(或精确到^{***}),它就会起作用.但是,stargazer默认情况下会生成它们,它们也是输出的重要部分.
有没有办法让它发挥作用?
---
header-includes:
- \usepackage{dcolumn}
output: pdf_document
---
## R Markdown
```{r, include = FALSE}
library(stargazer)
df <- data.frame(x = 1:10 + rnorm(100),
y = 1:10 + rnorm(100))
reg <- lm(y ~ x, data = df)
```
```{r, results='asis', echo = FALSE}
stargazer(reg, header = FALSE, align = TRUE)
```
Run Code Online (Sandbox Code Playgroud) 我在R公式上找到了这个pdf,我无法弄清楚它是如何|工作的(参见第二页的表格).此外,我在网上找不到任何解释.它不时出现在可能的公式符号的列表中但没有任何示例.
我认为它可能已经过时,因为其他方式可以实现它所做的一切.
有人知道如何使用|公式以及它究竟达到了什么目的吗?
一些代码显示我笨拙的尝试使用|.
x <- rnorm(100)
y <- rnorm(100)
z <- sample(c(TRUE, FALSE), 100, replace = TRUE )
lm(y ~ x|z)
Run Code Online (Sandbox Code Playgroud) 我输入了以下命令来开发核心图.它有效,但情节显示夹在底部边缘.更改par(mar = c(5,4,4,2)+ 0.1)参数对corrplot的放置没有影响.想法?
library(corrplot)
a <- seq(1,10,1)
b <- seq(2,20,2)
c <- seq(3,30,3)
z <- data.frame(a,b,c)
corrplot(cor(z))
Run Code Online (Sandbox Code Playgroud) 使用以下代码data.dable可以选择 a 的列。
mtcars_dt <- data.table(mtcars)
selected_cols <- c("mpg")
mtcars_dt[ ,..selected_cols]
Run Code Online (Sandbox Code Playgroud)
我想在闪亮的反应式表达式中做同样的事情。然而,它的行为很奇怪。这是一个可重现的示例
library(shiny)
library(data.table)
mtcars_dt <- data.table(mtcars)
ui <- basicPage(
selectInput("var", "Select variable", names(mtcars)),
textOutput("out1"),
textOutput("out2")
)
server <- function(input, output) {
output$out1 <- renderText({
mtcars[1:3 ,input$var]
})
output$out2 <- renderText({
mtcars_dt[1:3 , ..input$var]
})
}
shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)
当我运行此应用程序时,第二个输出是一个字符串,其中包含我要选择的列的名称。
为什么会发生这种情况?我该如何解决它?
在 RStudio 中,当我在我的 .Rmd 文件(代码>插入块或 Ctrl-Alt-I)中插入一个新的代码块时,默认情况下它具有 header {r}。我想让它默认为 knitr option {r, message=F},我发现它可以产生更好的最终报告输出。有没有办法更改 RStudio 中的默认代码标头?谢谢!
如何rmarkdown以新段落以缩进的第一行(作为LateX中的默认行)开始而不是使用空格而不是缩进的方式更改设置.
这就是我通常得到的:
---
output: pdf_document
---
## R Markdown
This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>.
When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:**
Run Code Online (Sandbox Code Playgroud)
这就是我想要的:
我有一些Lapacke使用OpenBlas. 我想将此代码包含到 R 包中,并使用该Rcpp包在该函数和 R 之间传输数据。但不知为何,两人似乎并不喜欢对方。一旦我#include <lapacke.h>在 #include <Rcpp.h>一个源文件中,它就不再编译了。两者单独工作都很好。据我所知,有一大堆错误消息已损坏Rcpp(例如/home/Alex/R/x86_64-pc-linux-gnu-library/3.4/Rcpp/include/Rcpp/traits/traits.h:32:15: error: expected \xe2\x80\x98)\xe2\x80\x99 before \xe2\x80\x98__extension__\xe2\x80\x99).
我不知道为什么会发生这种情况。有没有办法同时使用两者?\n或者我应该做一些完全不同的事情?
\n\n这是一个给我错误的最小示例:
\n\n我使用创建了一个包
\n\nRcpp::Rcpp.package.skeleton("LT", example_code = FALSE)\nRun Code Online (Sandbox Code Playgroud)我添加了一个.cpp文件来/src包含
#include <lapacke.h>\n#include <Rcpp.h>\n\nint test_LAPACK(){\n return(1);\n}\nRun Code Online (Sandbox Code Playgroud)我添加了一个 Makvars 文件来/src包含
PKG_CXXFLAGS = -I/opt/OpenBLAS/include\nPKG_LIBS = -L/opt/OpenBLAS/lib -lopenblas -lpthread -lgfortran\nCXX_STD = CXX11\nRun Code Online (Sandbox Code Playgroud)编译安装
\n\nRcpp::compileAttributes("LT")\ndevtools::install("LT")\nRun Code Online (Sandbox Code Playgroud)是否有(容易)识别两个字符串共有的共同模式的可能性?这里有一个小例子来说明我的意思:
我有两个包含字符串的变量.两者都包括相同的模式("ABC")和一些"噪音".
a <- "xxxxxxxxxxxABCxxxxxxxxxxxx"
b <- "yyyyyyyyyyyyyyyyyyyyyyyABC"
Run Code Online (Sandbox Code Playgroud)
让我说我不知道常见的模式,我希望R找出两个字符串都包含"ABC".我怎样才能做到这一点?
*编辑
第一个例子可能有点简单化.这是我的真实数据的一个例子.
a <- "DUISBURG-HAMBORNS"
b <- "DUISBURG (-31.7.29)S"
Run Code Online (Sandbox Code Playgroud)
两个字符串都包含"DUISBURG",我希望函数能够识别.
*编辑
我在评论中发布的链接中提出了解决方案.但我仍然没有我想要的.
library(qualV)
LCS(strsplit(a[1], '')[[1]],strsplit(b[1], '')[[1]])$LCS
[1] "D" "U" "I" "S" "B" "U" "R" "G" "-" " " " " "S"
Run Code Online (Sandbox Code Playgroud)
如果函数正在寻找两个向量的最长公共子序列,为什么它不会停止"D" "U" "I" "S" "B" "U" "R" "G"?.
我只使用R和c ++中的算术运算(使用rcpp)编写了一个非常简单的函数.比较这两个函数显示我的c ++实现比我的R代码慢,这让我很困惑.
c ++版本:
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
NumericVector dn_cpp(NumericVector x, NumericVector sigma, NumericVector mu) {
return 1/(sqrt(2*M_PI)*sigma) * exp(pow((x-mu),2)/(-2*pow(sigma, 2)) );
}
Run Code Online (Sandbox Code Playgroud)
R版:
dn_r <- function(x, sigma, mu) {
1/(sqrt(2*pi)*sigma) * exp((x-mu)^2/(-2*sigma^2) )
}
Run Code Online (Sandbox Code Playgroud)
比较两者:
library(microbenchmark)
microbenchmark(
dn_r(1,1,1),
dn_cpp(1,1,1),
times = 10000
)
# Unit: nanoseconds
# expr min lq mean median uq max neval
# dn_r(1, 1, 1) 509 567 667.1547 627 715.5 12690 10000
# dn_cpp(1, 1, 1) 1094 1242 1713.8351 1335 1479.0 …Run Code Online (Sandbox Code Playgroud)