小编Dav*_*uer的帖子

如何从R对象创建xml,例如,是否有'listToXml'函数?

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>

xml r

18
推荐指数
3
解决办法
1万
查看次数

是否可以将ggplot的标题与右边对齐?

我生成的图形将用作三面板图形右侧的标签列,我希望图形的标题与图中的标签一样右对齐.

这是一个最小的例子,我想右对齐标题'单词'.

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=1hjust = 0.96接近,但这更像是一个黑客而不是一个令人满意的答案.

r ggplot2

18
推荐指数
1
解决办法
8835
查看次数

为什么ifelse将data.frame转换为列表:ifelse(TRUE,data.frame(1),0))!= data.frame(1)?

如果为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)

if-statement r class function

17
推荐指数
1
解决办法
2768
查看次数

如何在ggplot2中获得准确的字体,线条,点和图形大小?

对于最终文章提交,我被要求更新我的数据,以便它们符合以下规范:

  1. 轴线为0.25毫米
  2. 轴线四周都有刻度线
  3. 数据线为0.5毫米
  4. 字体是10pt
  5. 数字应为80或169毫米宽
  6. 必须是300 dpi

我尝试过的:

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)

graphics r ggplot2

16
推荐指数
1
解决办法
918
查看次数

如何在ggplot中使用spline()?

我想使用样条曲线(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 spline ggplot2

15
推荐指数
1
解决办法
1万
查看次数

如何将列表传递给R中的函数?

我一直难以找到有关如何将列表传递给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 function

15
推荐指数
2
解决办法
1万
查看次数

如何将Rd文件转换为pdf以获取我在R中创建的包?

我正在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"中的文档,但没有提供示例.

谢谢

r

14
推荐指数
2
解决办法
8076
查看次数

如何在emacs-ess中的R会话之间切换?

我在Emacs-ESS中打开了两个会话:一个在我的桌面上,另一个在使用tramp的服务器上.如何告诉ESS使用哪个会话?

emacs r tramp ess

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

我可以使用ggplot分别控制x和y轴吗?

这是来自ggplot wikiggplot:

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是选项之一.

我试过了什么

  1. 维基表明,例如,可以控制轴的颜色

    baseplot + opts(axis.line = theme_segment(colour = 'black', size = 2))
    
    Run Code Online (Sandbox Code Playgroud)

    在此输入图像描述

  2. 使用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)

r ggplot2

14
推荐指数
2
解决办法
4039
查看次数

通过R中变量的模糊匹配进行合并

我有两个数据帧(x和y),其中ID是student_name,father_namemother_name.由于印刷错误("n"而不是"m",随机白色空间等),我有大约60%的值没有对齐,尽管我可以关注数据并看到它们应该.有没有办法以某种方式降低不匹配的级别,以便手动编辑,因为至少可行?数据帧有大约700K的观测值.

R最好.我知道一点python,以及一些基本的unix工具.PS我读过agrep(),但不明白它如何对实际数据集起作用,特别是当匹配超过一个变量时.


更新(已发布奖金的数据):

是两个示例数据框,sites_asites_b.他们可以在数字列匹配latlon以及在sitename列.知道如何在a)只是lat+ lon,b)sitename或c)两者上完成这将是有用的.

您可以获取文件test_sites.R,该文件作为要点发布.

理想情况下,答案将以此结束

merge(sites_a, sites_b, by = **magic**)
Run Code Online (Sandbox Code Playgroud)

unix linux r

14
推荐指数
2
解决办法
2959
查看次数

标签 统计

r ×10

ggplot2 ×4

function ×2

class ×1

emacs ×1

ess ×1

graphics ×1

if-statement ×1

linux ×1

spline ×1

tramp ×1

unix ×1

xml ×1