小编Eti*_*rie的帖子

在R中,如何在将对象的名称发送到函数后获取它?

我正在寻找相反的get().

给定一个对象名称,我希望有一个表示该对象的字符串直接从该对象中提取.

foo作为我正在寻找的功能的占位符的简单示例.

z <- data.frame(x=1:10, y=1:10)

test <- function(a){
  mean.x <- mean(a$x)
  print(foo(a))
  return(mean.x)}

test(z)
Run Code Online (Sandbox Code Playgroud)

会打印:

  "z"
Run Code Online (Sandbox Code Playgroud)

我的工作,在我目前的问题中更难实现的是:

test <- function(a="z"){
  mean.x <- mean(get(a)$x)
  print(a)
  return(mean.x)}

test("z")
Run Code Online (Sandbox Code Playgroud)

r

120
推荐指数
3
解决办法
4万
查看次数

如何计算字符串列每行中给定字符的出现次数?

我有一个data.frame,其中某些变量包含文本字符串.我希望计算每个字符串中给定字符的出现次数.

例:

q.data<-data.frame(number=1:3, string=c("greatgreat", "magic", "not"))
Run Code Online (Sandbox Code Playgroud)

我希望为q.data创建一个新列,其中包含字符串中"a"的出现次数(即c(2,1,0)).

我管理的唯一令人费解的方法是:

string.counter<-function(strings, pattern){  
  counts<-NULL
  for(i in 1:length(strings)){
    counts[i]<-length(attr(gregexpr(pattern,strings[i])[[1]], "match.length")[attr(gregexpr(pattern,strings[i])[[1]], "match.length")>0])
  }
return(counts)
}

string.counter(strings=q.data$string, pattern="a")

 number     string number.of.a
1      1 greatgreat           2
2      2      magic           1
3      3        not           0
Run Code Online (Sandbox Code Playgroud)

regex r dataframe

92
推荐指数
6
解决办法
9万
查看次数

如何在ggplot2中为facet添加常规标签?

我经常有刻面的数值.我希望提供足够的信息来解释补充标题中的这些分面值,类似于轴标题.贴标签选项重复了许多不必要的文本,并且对于较长的变量标题不可用.

有什么建议?

默认值:

test<-data.frame(x=1:20, y=21:40, facet.a=rep(c(1,2),10), facet.b=rep(c(1,2), each=20))
qplot(data=test, x=x, y=y, facets=facet.b~facet.a)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我想要的是:

在此输入图像描述

我能在ggplot中做得最好:

qplot(data=test, x=x, y=y)+facet_grid(facet.b~facet.a, labeller=label_both)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如@Hendy所示,类似于: 在ggplot2图中添加辅助y轴 - 使其完美

label r facet ggplot2

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

如何安装R包github存储库的开发版本

如何直接从github存储库安装正在开发的软件包,一旦安装,如何在开发和CRAN版本之间切换?

我有兴趣从git安装的特定包是ggplot2.

r github ggplot2

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

R strsplit有多个无序拆分参数?

给定一个字符串

test_1<-"abc def,ghi klm"
test_2<-"abc, def ghi klm"
Run Code Online (Sandbox Code Playgroud)

我想获得

"abc"
"def"
"ghi"
Run Code Online (Sandbox Code Playgroud)

但是,使用strsplit时,必须知道字符串中拆分值的顺序,因为strsplit使用第一个值进行第一次拆分,第二次执行第二次拆卸...然后循环使用.

但这不是:

strsplit(test_1, c(",", " "))
strsplit(test_2, c(" ", ","))

strsplit(test_2, split=c("[:punct:]","[:space:]"))[[1]]
Run Code Online (Sandbox Code Playgroud)

我想在一个步骤中找到任何分裂值的地方拆分字符串.

split r

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

如何从私有数据创建示例数据集(用无信息的占位符替换变量名称和级别)?

为了提供可重现的方法示例,通常必须提供数据集.我希望使用一些自己的数据,而不是构建示例数据集.但是这些数据无法发布.我希望用无信息的占位符替换变量(列)名称和因子级别(例如,V1 .... V5,L1 ...... L5).

这是一种自动化的方法吗?

理想情况下,这将在R中完成,接收data.frame并生成此匿名data.frame.

使用这样的数据集,只需在脚本中搜索和替换变量名称,就可以获得可公开发布的可重现的示例.

这样的过程可以增加在可重复的示例中包含适当的数据,甚至在问题,评论和错误报告中包含可重现的示例.

r

42
推荐指数
3
解决办法
4643
查看次数

如何优化R中的整数参数(和其他不连续参数空间)?

如果参数空间只是整数(或者是不连续的),如何优化?

在optim()中使用整数检查似乎不起作用,反正效率非常低.

fr <- function(x) {   ## Rosenbrock Banana function
  x1 <- x[1]
  x2 <- x[2]
  value<-100 * (x2 - x1 * x1)^2 + (1 - x1)^2

  check.integer <- function(N){
    !length(grep("[^[:digit:]]", as.character(N)))
  }

  if(!all(check.integer(abs(x1)), check.integer(abs(x2)))){
   value<-NA 
  }
  return(value)

}
optim(c(-2,1), fr)
Run Code Online (Sandbox Code Playgroud)

optimization integer r

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

合并更大数据的有效替代方案.框架R

我正在寻找一种有效的(计算机资源方面和学习/实现方式)方法来合并两个更大的(大小> 100万/ 300 KB RData文件)数据帧.

基础R中的"merge"和plyr中的"join"似乎耗尽了我的所有内存,有效地崩溃了我的系统.

示例
负载测试数据框

并尝试

test.merged<-merge(test, test)
Run Code Online (Sandbox Code Playgroud)

要么

test.merged<-join(test, test, type="all")  
Run Code Online (Sandbox Code Playgroud)
    -

以下帖子提供了合并和备选方案的列表:
如何连接(合并)数据框(内部,外部,左侧,右侧)?

以下允许对象大小检查:https:
//heuristically.wordpress.com/2010/01/04/r-memory-usage-statistics-variable/

匿名制作的数据

merge r plyr dataframe data.table

27
推荐指数
2
解决办法
3万
查看次数

删除两个ggplots之间的所有空间以及grid.arrange

我想在主题之间插入两个没有任何空间的图(因此它们共用一个轴).

鉴于:

p1 <- qplot(1,1,xlab="")

p1 <- p1 +
  theme(legend.position="none",
        axis.text.x=element_blank(),
        axis.ticks.x=element_blank(),
        plot.margin=unit(c(1,1,0,1), "cm"),
        panel.margin=unit(c(1,1,0,1), "cm"))
p2 <- qplot(1,2)

grid.arrange(p1,p2)
Run Code Online (Sandbox Code Playgroud)

哪个产生:

在此输入图像描述

我想消除两个地块之间的空白区域.

我有调整高度的印象,就像宽度所做的那样:左对齐两个图形边缘(ggplot)是解决方案,但无法弄明白.

r ggplot2

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

R缩放设置宽度和高度的PDF中的绘图元素

虽然发送到PDF的R图可以在插图或页面布局软件中随意重新调整,但科学期刊通常坚持提供的图表具有特定的尺寸.

所有绘图元素的大小可以直接在R中在给定的PDF大小内缩放吗?

require(ggplot2)

p <- qplot(data=iris,
           x=Petal.Width,
           y=Petal.Length,
           colour=Species)

pdf("./test_plot_default.pdf")
print(p)
graphics.off()
Run Code Online (Sandbox Code Playgroud)

生成适当的绘图元素缩放

测试图,默认为pdf大小

但是,更改PDF大小元素不会导致绘图元素缩放.对于较小的PDF,绘图元素与绘图空间相比过度放大.

pdf("./test_plot_dimentionsions required by journal.pdf", width=3, height=3)
print(p)
graphics.off()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

使用@Rosen Matev建议:

update_geom_default("point", list(size=1))
theme_set(theme_grey(base_size=6))
pdf("./test_plot_dimentionsions required by journal.pdf", width=3, height=3)
print(p)
graphics.off()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

pdf plot r ggplot2

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

标签 统计

r ×10

ggplot2 ×4

dataframe ×2

data.table ×1

facet ×1

github ×1

integer ×1

label ×1

merge ×1

optimization ×1

pdf ×1

plot ×1

plyr ×1

regex ×1

split ×1