R的XML包有一个xmlToList函数,但没有反过来,是否有一个R函数将列表转换为XML对象?
我想要的东西
listToXML(list('a'))
Run Code Online (Sandbox Code Playgroud)
返回
<a></a>
Run Code Online (Sandbox Code Playgroud)
但我能找到的最接近的是
library(XML)
xmlNode(list('a'))
Run Code Online (Sandbox Code Playgroud)
返回
</a>
Run Code Online (Sandbox Code Playgroud)
帮助解决这个问题,并理解R对象到XML的转换(XML包)似乎更侧重于使用R来读取XML,而对创建XML的支持较少.
更新......我无法弄清楚的一个原因是因为我没有意识到尾随'/' <node/>表示空节点,相当于<node></node>
我生成的图形将用作三面板图形右侧的标签列,我希望图形的标题与图中的标签一样右对齐.
这是一个最小的例子,我想右对齐标题'单词'.
ggplot() +
geom_text(aes(y = 1, x = seq(4),
label = c('fee', 'fi', 'fo', 'fum'),
hjust = 1)) +
opts(title = 'words') +
coord_flip() +
scale_y_continuous(breaks = c(0,0), limits = c(0,1))
Run Code Online (Sandbox Code Playgroud)
产生这个:

更新
@joran的答案很有帮助,但它没有将标签与标签对齐.改变他的代码hjust=1来hjust = 0.96接近,但这更像是一个黑客而不是一个令人满意的答案.
如果为TRUE,我想从函数返回data.frame,否则返回NA return(ifelse(condition, mydf, NA))
但是,ifelse会从data.frame中删除列名.
为什么这些结果不同?
> data.frame(1)
X1
1 1
> ifelse(TRUE, data.frame(1), NA)
[[1]]
[1] 1
Run Code Online (Sandbox Code Playgroud)
来自dput()的一些额外见解:
> dput(ifelse(TRUE, data.frame(1), 0))
list(1)
> dput(data.frame(1))
structure(list(X1 = 1), .Names = "X1", row.names = c(NA, -1L),
class = "data.frame")
Run Code Online (Sandbox Code Playgroud) 对于最终文章提交,我被要求更新我的数据,以便它们符合以下规范:
我尝试过的:
library(ggplot2)
library(cowplot)
theme_set(theme_bw())
x <- rnorm(100)
mydata <- data.frame(x = x,
y = x^2 + runif(100),
z = rep(letters[1:4], 25))
p <- ggplot(data = mydata, aes(x, y)) +
geom_point(aes(color = z)) +
geom_smooth(color = 'black', se = FALSE, size = 0.5) +
theme(text = element_text(family = 'Times', size = 10, color = 'black'),
axis.ticks.length = unit(-0.1, 'cm'),
axis.text.x = element_text(margin = margin(t = 4, unit = 'mm')),
axis.text.y = element_text(margin = …Run Code Online (Sandbox Code Playgroud) 我想使用样条曲线(y~x)来拟合我的数据,但我能找到的所有示例都使用具有平滑的样条曲线,例如lm(y~ns(x),df = _).
我想spline()特别使用,因为我使用它来进行我正在制作的情节所代表的分析.
有没有一种简单的方法在ggplot中使用spline()?
我已经考虑了使用拟合线的hackish方法
geom_smooth(aes(x=(spline(y~x)$x, y=spline(y~x)$y))
Run Code Online (Sandbox Code Playgroud)
但我宁愿不必诉诸于此.
谢谢!
我一直难以找到有关如何将列表传递给R中的函数的信息.
我之前使用过这种方法,例如
plot(list(x=1,y=1))
Run Code Online (Sandbox Code Playgroud)
但是以下示例给出了一个错误:
foo <- function(a, b) c <- a + b
foo(list(a=1,b=1))
Error in foo(list(a = 1, b = 1)) :
argument "b" is missing, with no default
Run Code Online (Sandbox Code Playgroud)
此外,?function不起作用,help('function')也不提供有关将列表传递给函数的信息.
更新
为了澄清,我理解如何使用列表作为单个参数,但我感到困惑,因为我的印象是函数的属性是多个参数可以作为列表传递.看来这种印象不正确.相反,许多函数专门用于处理列表,如下面的注释和答案中所述.
我正在R中编写一个包,我希望通过一些示例bash代码来处理Rd文件到latex然后再到pdf.
它位于〜/ mypkg/dev /目录中.我已经生成了文件结构和Rd模板.
来自〜/ mypkg/dev/man,我试过了
R CMD Rdconv -o mypkg-package.tex --type=latex mypkg-package.Rd
Run Code Online (Sandbox Code Playgroud)
生成mypkg-package.tex文件,但是
pdflatex mypkg-package.tex
Run Code Online (Sandbox Code Playgroud)
生成tex而没有任何序言.
我已经阅读了关于这个主题的"编写R扩展"和"R CMD Rdconv --help"中的文档,但没有提供示例.
谢谢
我在Emacs-ESS中打开了两个会话:一个在我的桌面上,另一个在使用tramp的服务器上.如何告诉ESS使用哪个会话?
这是来自ggplot wiki的ggplot:
baseplot <- ggplot(data.frame(x=1:10, y=10:1)) +
geom_point(aes(x = x, y = y))
baseplot
Run Code Online (Sandbox Code Playgroud)

是否可以单独控制这些轴,例如仅使x轴变黑?它似乎没有,axis.line.x并且axis.line.y是选项之一.
维基表明,例如,可以控制轴的颜色
baseplot + opts(axis.line = theme_segment(colour = 'black', size = 2))
Run Code Online (Sandbox Code Playgroud)

使用geom_segment作品,但有限制,线必须与图号匹配.
有没有办法获得,例如轴最大值和最小值以及baseplot物体的刻度?这将减少潜在的错误.更新这个问题的答案,"不,还没有",之前已经介绍过.
baseplot + geom_segment(aes(x = c(0,0), y = c(0,0),
yend = c(0, max(y)), xend = c(max(x), 0),
size = c(0.5, 0.1))) +
geom_segment(aes(x = 0, y = y,
xend = -1,
yend = …Run Code Online (Sandbox Code Playgroud)我有两个数据帧(x和y),其中ID是student_name,father_name和mother_name.由于印刷错误("n"而不是"m",随机白色空间等),我有大约60%的值没有对齐,尽管我可以关注数据并看到它们应该.有没有办法以某种方式降低不匹配的级别,以便手动编辑,因为至少可行?数据帧有大约700K的观测值.
R最好.我知道一点python,以及一些基本的unix工具.PS我读过agrep(),但不明白它如何对实际数据集起作用,特别是当匹配超过一个变量时.
更新(已发布奖金的数据):
这是两个示例数据框,sites_a和sites_b.他们可以在数字列匹配lat和lon以及在sitename列.知道如何在a)只是lat+ lon,b)sitename或c)两者上完成这将是有用的.
您可以获取文件test_sites.R,该文件作为要点发布.
理想情况下,答案将以此结束
merge(sites_a, sites_b, by = **magic**)
Run Code Online (Sandbox Code Playgroud)