我正在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的图片:

这是图2的图片:

我发现我可以使用aes_string而不是aes将变量名称作为字符串传递来解决这个问题,但我想理解为什么ggplot表现得那样.在类似的尝试中也会出现问题facet_wrap.
对于任何提前帮助都很有帮助!如果我不理解,我会感到非常不舒服......
我在大学里用R和RStudio做家庭作业.作业通常是这样的:"证明定理xy并在R中实现你的解决方案".
目前,我主要依靠Wolframalpha和Maple进行符号计算,但我想在RStudio中完全解决这些问题.
我知道R有一个名为rSympy的Sympy接口,还有像RYacas这样的计算机代数系统.但是,由于RStudio可以执行Python脚本,如果它们存储在.Py文件中并将它们发送到RStudio控制台,我想知道是否有可能在knitr块中使用带有engine ="python"的Python代码并发送脚本到RStudio控制台而不必编织整个文档?
我正在寻找的工作流程如下:
有关屏幕截图,请参阅此链接:https: //www.dropbox.com/s/hn8azii7cji4suz/stackexchange_question.tiff?dl = 0
如果您知道在R + RStudio中进行符号计算的更优雅方式,我也期待您的回答!
非常感谢愿意帮助我的每个人:)这已经困扰了我很长一段时间了...
我想知道是否有人可以帮助我修复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)
截图:
我正在尝试基于分组数据框中的两列在 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)