小编Chr*_*oph的帖子

使用美元符号表示法($)将变量与facet_grid()或facet_wrap()一起传递给aes()时出现问题

我正在ggplot2做一些项目的分析,偶然我偶然发现一些(对我来说)奇怪的行为,我无法解释.当我写aes(x = cyl, ...)这个情节时,如果我使用相同的变量,它看起来会有什么不同aes(x = mtcars$cyl, ...).当我删除facet_grid(am ~ .)两个图表时再次相同.下面的代码是在我的项目中生成相同行为的代码之后建模的:

library(dplyr)
library(ggplot2)

data = mtcars

test.data = data %>%
  select(-hp)


ggplot(test.data, aes(x = test.data$cyl, y = mpg)) +
  geom_point() + 
  facet_grid(am ~ .) +
  labs(title="graph 1 - dollar sign notation")

ggplot(test.data, aes(x = cyl, y = mpg)) +
  geom_point()+ 
  facet_grid(am ~ .) +
  labs(title="graph 2 - no dollar sign notation")
Run Code Online (Sandbox Code Playgroud)

这是图1的图片:

图1  - 美元符号表示法

这是图2的图片:

图2  - 没有美元符号表示法

我发现我可以使用aes_string而不是aes将变量名称作为字符串传递来解决这个问题,但我想理解为什么ggplot表现得那样.在类似的尝试中也会出现问题facet_wrap.

对于任何提前帮助都很有帮助!如果我不理解,我会感到非常不舒服......

r ggplot2 r-faq

14
推荐指数
1
解决办法
1818
查看次数

可以像普通的R代码一样从knitr chunk发送Python代码到RStudio控制台吗?

我在大学里用R和RStudio做家庭作业.作业通常是这样的:"证明定理xy并在R中实现你的解决方案".

目前,我主要依靠Wolframalpha和Maple进行符号计算,但我想在RStudio中完全解决这些问题.

我知道R有一个名为rSympy的Sympy接口,还有像RYacas这样的计算机代数系统.但是,由于RStudio可以执行Python脚本,如果它们存储在.Py文件中并将它们发送到RStudio控制台,我想知道是否有可能在knitr块中使用带有engine ="python"的Python代码并发送脚本到RStudio控制台而不必编织整个文档?

我正在寻找的工作流程如下:

  1. 在RStudio中有一个带有engine ="python"的块的.RMD文件
  2. 导入sympy并进行一些符号计算
  3. 执行python块并立即在RStudio控制台中看到输出(就像可以使用普通的R块一样)而无需编织整个文档
  4. 理想情况下,也可以访问python结果,以便我可以将它们转换为R公式等.

有关屏幕截图,请参阅此链接:https: //www.dropbox.com/s/hn8azii7cji4suz/stackexchange_question.tiff?dl = 0

如果您知道在R + RStudio中进行符号计算的更优雅方式,我也期待您的回答!

非常感谢愿意帮助我的每个人:)这已经困扰了我很长一段时间了...

python r sympy rstudio knitr

5
推荐指数
1
解决办法
510
查看次数

使用HUGO的.md文件中的R blogdown包中的Math问题

我想知道是否有人可以帮助我修复Hugo静态网站的R blogdown包中的数学渲染的以下问题?

我制作了一个屏幕截图,显示了Latex代码,并在我得到的输出下方.

这些公式在Atom Markdown-Preview-Plus中呈现得很好.公式的字体大小似乎也很大,但这更像是一个风格问题我猜:)

更新1: 我将问题缩小到Hugo Academic主题中的数学渲染的某些问题(对于链接,这是@bethanyP)

如果我使用默认的RStudio huge-lithium主题,代码会很好.

更新2:

如果你$$ math expression$$在美元符号之前和之后用反引号写数学,那么将下面的脚本添加到文件head_custom.html会使公式在Hugo Academic中起作用:

<script type="text/x-mathjax-config">
MathJax.Hub.Config({
  tex2jax: {
    skipTags: ['script', 'noscript', 'style', 'textarea', 'pre']
  }
});
</script>
<script async type="text/javascript"
  src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
Run Code Online (Sandbox Code Playgroud)

更新3:

所以,我终于解决了所有问题.将以下代码添加到huge-academic.css或按照hugo学术说明添加自定义css文件:

code .MathJax {
  color: black;
  background-color: white;
}
Run Code Online (Sandbox Code Playgroud)

现在所有公式都正确呈现并呈黑色:)

复制/粘贴代码:

1:

$$\begin{align}
\alpha & = 1 \\
\alpha & = 2 \\
\end{align}$$
Run Code Online (Sandbox Code Playgroud)

2:

$$\underbrace{P(Jar~1 | Nut~Cookie)}_{\text{posterior}} = \frac{\overbrace{P(Nut~Cookie | Jar~1)}^{\text{likelihood}}\overbrace{P(Jar~1)}^{\text{prior}}}{\underbrace{P(Nut~Cookie)}_{\text{normalizing constant}}}$$
Run Code Online (Sandbox Code Playgroud)

截图:

博客数学问题

r hugo blogdown

5
推荐指数
1
解决办法
593
查看次数

将 groupby 结果广播为原始 DataFrame 中的新列

我正在尝试基于分组数据框中的两列在 Pandas 数据框中创建一个新列。

具体来说,我正在尝试复制此 R 代码的输出:

library(data.table)

df = data.table(a = 1:6, 
            b = 7:12,
            c = c('q', 'q', 'q', 'q', 'w', 'w')
            )


df[, ab_weighted := sum(a)/sum(b), by = "c"]
df[, c('c', 'a', 'b', 'ab_weighted')]
Run Code Online (Sandbox Code Playgroud)

输出:

在此处输入图片说明

到目前为止,我在 Python 中尝试了以下操作:

import pandas as pd

df = pd.DataFrame({'a':[1,2,3,4,5,6],
               'b':[7,8,9,10,11,12],
               'c':['q', 'q', 'q', 'q', 'w', 'w']
              })

df.groupby(['c'])['a', 'b'].apply(lambda x: sum(x['a'])/sum(x['b']))
Run Code Online (Sandbox Code Playgroud)

输出:

在此处输入图片说明

当我将apply上面的代码更改为transform出现错误时:TypeError: an integer is required

转换工作正常,如果我只使用一列:

import pandas as pd

df = pd.DataFrame({'a':[1,2,3,4,5,6],
               'b':[7,8,9,10,11,12],
               'c':['q', 'q', …
Run Code Online (Sandbox Code Playgroud)

python group-by dataframe pandas pandas-groupby

4
推荐指数
2
解决办法
3168
查看次数

标签 统计

r ×3

python ×2

blogdown ×1

dataframe ×1

ggplot2 ×1

group-by ×1

hugo ×1

knitr ×1

pandas ×1

pandas-groupby ×1

r-faq ×1

rstudio ×1

sympy ×1