小编Dre*_*way的帖子

将LaTeX变成R图

我想补充LaTeX排版到地块元件R(例如:标题,轴标签,注释等)的使用任一组合base/lattice或与ggplot2.

问题:

  • 有没有办法LaTeX使用这些包进入图表,如果是这样,它是如何完成的?
  • 如果没有,是否需要额外的包来完成此任务.

例如,通过这里讨论的包进行Python matplotlib编译:http://www.scipy.org/Cookbook/Matplotlib/UsingTexLaTeXtext.usetex

是否有类似的过程可以生成这样的图R

plot latex r

116
推荐指数
5
解决办法
8万
查看次数

将列表强制转换为数据框的最有效方法是什么?

我经常想要将每个索引具有相同元素类型的列表转换为数据帧.例如,我可能有一个列表:

> my.list
[[1]]
[[1]]$global_stdev_ppb
[1] 24267673

[[1]]$range
[1] 0.03114799

[[1]]$tok
[1] "hello"

[[1]]$global_freq_ppb
[1] 211592.6


[[2]]
[[2]]$global_stdev_ppb
[1] 11561448

[[2]]$range
[1] 0.08870838

[[2]]$tok
[1] "world"

[[2]]$global_freq_ppb
[1] 1002043
Run Code Online (Sandbox Code Playgroud)

我想将此列表转换为数据框,其中每个索引元素都是一列.自然(对我来说)要做的就是使用do.call:

> my.matrix<-do.call("rbind", my.list)
> my.matrix
     global_stdev_ppb range      tok     global_freq_ppb
[1,] 24267673         0.03114799 "hello" 211592.6       
[2,] 11561448         0.08870838 "world" 1002043
Run Code Online (Sandbox Code Playgroud)

很简单,但是当我尝试将此矩阵转换为数据框时,列仍然是列表元素,而不是向量:

> my.df<-as.data.frame(my.matrix, stringsAsFactors=FALSE)
> my.df[,1]
[[1]]
[1] 24267673

[[2]]
[1] 11561448
Run Code Online (Sandbox Code Playgroud)

目前,为了正确地投射数据帧,我使用unlist和迭代每个列as.vector,然后重建数据帧:

new.list<-lapply(1:ncol(my.matrix), function(x) as.vector(unlist(my.matrix[,x])))
my.df<-as.data.frame(do.call(cbind, new.list), stringsAsFactors=FALSE)
Run Code Online (Sandbox Code Playgroud)

然而,这似乎效率很低.有没有更好的方法来做到这一点?

r list dataframe

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

从PDF文件中提取文本数据

是否可以从R中解析PDF文件中的文本数据?有没有出现是一个相关包这样的提取,但有没有人尝试或见于读该怎么办?

Python中有PDFMiner,但我想在可能的情况下将此分析保留在R中.

有什么建议?

pdf r parser-generator

41
推荐指数
6
解决办法
4万
查看次数

搜索R包的最佳方法是什么?

相关问题

如何搜索r材料

我认为R社区被吸引到基于标签的服务(如StackOverflow)的部分原因是R上的信息从根本上很难在网上找到.像RSeek这样的服务让这个问题稍微减轻了一些,但是,我经常发现搜索结果分散了.

具体来说,我常常很好奇是否存在R包以满足我所面临的特定需求.RSeek对于查找包文档很有用,但不适用于发现新包 - 而且R包管理器的用处更少.因此,搜索包的最佳做法是什么?也就是说,当我意识到我需要我当前的R套装不能满足时,在自己创建功能之前,我想搜索一个能满足需要的软件包.什么是最好的方法?

search r

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

从分类变量创建新的虚拟变量列

我有几个数据集,75,000个观测值和一个type可以取值0-4 的变量.我想为所有类型的每个数据集添加五个新的虚拟变量.我能想出的最佳方法如下:

# For the 'binom' data set create dummy variables for all types in all data sets
binom.dummy.list<-list()
for(i in 0:4){
    binom.dummy.list[[i+1]]<-sapply(binom$type,function(t) ifelse(t==i,1,0))
}

# Add and merge data
binom.dummy.df<-as.data.frame(do.call("cbind",binom.dummy.list))
binom.dummy.df<-transform(binom.dummy.df,id=1:nrow(binom))
binom<-merge(binom,binom.dummy.df,by="id")
Run Code Online (Sandbox Code Playgroud)

虽然这很有效,但速度非常慢(合并功能甚至已经崩溃了几次).有没有更有效的方法来做到这一点?也许这个功能是我不熟悉的软件包的一部分?

r

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

使用ggplot2创建facet_wrap图,每个图中带有不同的注释

我正在使用ggplot2来探索基于代理的模型的一些测试结果.该模型可以在每次实现的三轮中结束,因此我感兴趣的是玩家实用程序在游戏结束的方式和它们在2D空间中的相对位置方面的差异.

所有这一切都是说我已经生成了一个facet_wrap图来显示每一轮的这个,但我还想用cor(x,y)为每个方面中表示的数据子集注释每个图.有没有办法告诉ggplot2我希望注释使用facet_wrap生成的数据子集?这是我到目前为止的代码,以及它产生的代码

library(ggplot2)

# Load data
abm.data<-read.csv("ABM_results.csv")

# Create new colun for area of Pareto set
attach(abm.data)
area<-abs(((x3*(y2-y1))+(x2*(y1-y3))+(x1*(y3-y2)))/2)
abm.data<-transform(abm.data,area=area)
detach(abm.data)

# Compare area of Pareto set with player utility
png("area_p1.png",res=100,pointsize=20,height=500,width=1600)
area.p1<-ggplot(abm.data,aes(x=area))+geom_point(aes(y=U1_2,colour="Player 1",alpha=0.4))+facet_wrap(~round,ncol=3)+
    annotate("text",0.375,-1.25,label=paste("rho=",round(cor(abm.data$area,abm.data$U1_2),2)), parse=TRUE)+
    scale_colour_manual(values=c("Player 1"="red"))
area.p1+xlab("Area of Pareto Set")+ylab("Player Utility at Game End")+
    opts(title="Final Player 1 Utility by Pareto Set Size and Round Game Ends",legend.position="none")
dev.off()
Run Code Online (Sandbox Code Playgroud)

area_p1 http://www.drewconway.com/zia/wp-content/uploads/2010/01/area_p1.png

如您所见,有两个问题:

  1. \ rho值是完整数据集,而不是'round'的子集.有没有办法让cor(x,y)仅根据每个图中显示的数据进行打印?
  2. 注释应为"\ rho = some_value",但我得到"=(\ rho,value);" 有没有办法来解决这个问题?

r graph ggplot2

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

在Sys.sleep()之前不执行的函数

我正在编写一个函数,需要在ping基于Web的API时捕获速率限制错误.

tryCatch用来捕获错误,并在此函数内我指定以下错误函数:

error=function(e) {
                warning(paste(e,"\nWaiting an hour for rate limit to reset..."))
                Sys.sleep(3600) # Wait an hour for rate-limit to reset
                return(user.info(user, ego.count))
            }
Run Code Online (Sandbox Code Playgroud)

该函数似乎有效,但在检查脚本的输出日志时,我注意到在睡眠时间用完之后才会写入警告消息.

我可以在R控制台上重现此行为:

print("Drew sucks")
Sys.sleep(10)
Run Code Online (Sandbox Code Playgroud)

之前十秒钟Drew sucks打印到控制台.在我的功能中,我想在暂停发生之前向用户提供关于这个长暂停的一些反馈.

是什么导致了这种行为?

r system

7
推荐指数
2
解决办法
3446
查看次数

在多个向量中查找不常见的元素

我试图找到多个向量之间不常见的元素.也就是说,我想确切地知道所有向量之间不共享的元素(不仅仅是它们的位置等).

我能想出的最好的实现使用嵌套循环,我意识到这可能是效率最低的,最值得注意的是因为我写这个时执行仍在运行.这就是我想出的.(每个*.id是最高法院案件ID的矢量,存储为字符串).

check.cases<-TRUE

if(check.cases) {
    all.cases<-c(AMKennedy.id,AScalia.id,CThomas.id,DHSouter.id,JGRoberts.id,JPStevens.id,RBGinsburg.id,SAAlito.id,SGBreyer.id)
    bad.cases<-c()
    for(b in all.cases) {
        for(t in all.cases) {
            m<-match(t,b)
            bad<-t[which(is.na(m))]
            bad.cases<-append(bad.cases,bad)
        }
    }
    bad.cases<-unique(bad.cases)
}

print(bad.cases)
Run Code Online (Sandbox Code Playgroud)

必须有一种更有效的方法吗?

search r vector

6
推荐指数
1
解决办法
435
查看次数

使用seq.Date作为stat_bin中的中断用于时间序列

我试图使用stat_bin函数中的几个月观察数年的时间序列数据ggplot2.代码如下所示:

month.breaks<-seq.Date(from=min(afg$DateOccurred),to=max(afg$DateOccurred),by="month")  # All months, for breaks
report.region<-ggplot(afg,aes(x=DateOccurred))+stat_bin(aes(y=..density..,fill=Type),breaks=month.breaks)+facet_wrap(~Region)
print(report.region)
Run Code Online (Sandbox Code Playgroud)

但是,当我运行print时,我收到以下错误:

Error in `+.Date`(left, right) : binary + is not defined for Date objects
Run Code Online (Sandbox Code Playgroud)

如果我正确读取这个,则没有为Date对象定义加号运算符,因此无法执行这种类型的分箱操作?

r ggplot2

6
推荐指数
1
解决办法
1708
查看次数

创建switch语句

最近,我需要将一系列日期从表单"July 25, 2010"转换为标准R格式"2010-07-25":

> head(old.data$dateoccurred)`
[1] "April 9, 2004"     "September 1, 2004" "February 7, 2005
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我想制作一个12个案例的switch语句,它返回一个月的数字表示; 但是,R不支持本机切换(至少,我找不到一个).

因此,创建交换机最像R的方式是什么?

r switch-statement

0
推荐指数
1
解决办法
779
查看次数

标签 统计

r ×10

ggplot2 ×2

search ×2

dataframe ×1

graph ×1

latex ×1

list ×1

parser-generator ×1

pdf ×1

plot ×1

switch-statement ×1

system ×1

vector ×1