小编Mik*_*eTP的帖子

ggplot传奇在顶部但在标题下面?

有没有办法让ggplot将传奇放在顶部但在标题下面?

举个例子...

在此输入图像描述

..使用以下代码生成:

carrots<-list(Yield=c(345,226,74,559,288,194), 
              Field=c("A","B","C","D","E","F"), 
              Breed=rep(c("Long","Short"),each=3)) 
carrots<-data.frame(carrots) 

ggplot(carrots,aes(y=Yield,x=Field,fill=Breed)) + 
  geom_bar() + 
  opts(title="Title",
       legend.direction = "horizontal", 
       legend.position = "top") + 
         labs(fill="") 
Run Code Online (Sandbox Code Playgroud)

任何建议将不胜感激?

r ggplot2

10
推荐指数
1
解决办法
3034
查看次数

子集R数据帧取决于重复变量的值

如何将以下示例数据框子集化为仅返回每个id的最早出现[即min(year)]的一个观察值?

id <- c("A", "A", "C", "D", "E", "F")
year <- c(2000, 2001, 2001, 2002, 2003, 2004)
qty  <- c(100, 300, 100, 200, 100, 500)
df=data.frame(year, qty, id)
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,对于2000年和2001年的"A"id有两个观察结果.在重复id的情况下,我希望子集数据帧仅包括观察结果的第一次出现(即2000).重复的ID.

df2 = subset(df, ???)
Run Code Online (Sandbox Code Playgroud)

这就是我想要回归的内容:

df2

year qty id
2000 100  A
2001 100  C
2002 200  D
2003 100  E
2004 500  F
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

r subset plyr dataframe data.table

9
推荐指数
3
解决办法
3124
查看次数

使用R中的gsub删除尾随空格

有没有人有一个技巧来删除变量上的尾随空格与gsub?

以下是我的数据示例.如您所见,我在变量中嵌入了尾随空格和空格.

county <- c("mississippi ","mississippi canyon","missoula ",
            "mitchell ","mobile ", "mobile bay")  
Run Code Online (Sandbox Code Playgroud)

我可以使用以下逻辑删除所有空格,但我真正想要的是仅在末尾移动空格.

county2 <- gsub(" ","",county)
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

r gsub

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

将图像(png文件)添加到使用R创建的pdf文件的标题中

我正在尝试将.png图像(徽标)添加到使用ggplot创建的图形的pdf报告的标题中并打印到pdf.

我找到了以下示例如何将图像添加到ggplot图中.但是,我希望将.png图像添加到ggplot区域之外的pdf标题中.

#-------------------------------------------------------------------------------
#  Example png file
#-------------------------------------------------------------------------------
library(reshape2)
library(png)
mypngfile = download.file('http://api.altmetric.com/donut/502878_64x64.png', 
                           destfile = 'mypng.png', mode = 'wb')
mypng = readPNG('mypng.png')

#-------------------------------------------------------------------------------
# create example plot using mtcars data frame from ggplot
#-------------------------------------------------------------------------------
library(ggplot2)
p.example = qplot(mpg, wt, data = mtcars) + 
  annotation_raster(mypng, ymin = 4.5, ymax= 5, xmin = 30, xmax = 35)

#-------------------------------------------------------------------------------
# print to pdf file with footnote
#-------------------------------------------------------------------------------
fname = "C:/temp/my report.pdf"
pdf(fname, 10.75, 6.5, onefile=TRUE, paper="a4r")
print(p.example)
dev.off()
Run Code Online (Sandbox Code Playgroud)

...产生一个如下所示的pdf:

在此输入图像描述

但是,我希望图像显示在ggplot区域之外 …

pdf graphics r ggplot2 usergrid

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

ggplot2 scale_x_continuous限制或绝对

我在一个循环(按县名)中使用以下ggplot2 v0.9 scale_x_continious逻辑,试图在具有相同x标度的单独图上绘制每个县的数据.

MaxDays=365*3;
p <- p + scale_x_continuous(limits=c(0,MaxDays))
p <- p + scale_x_continuous(breaks=seq(0,MaxDays,60))
Run Code Online (Sandbox Code Playgroud)

如果所有县都有数据> = MaxDate,那么逻辑很有效.但是,如果天数小于MaxDate,则图表x比例不均匀(即比如0 - 720天)

如何将scalse设置为绝对值而不是限制值?

任何援助都将受到极大的赞赏

############################################
###  Sample Data Below
############################################

# County 1 data
Days=seq(1,30,1)
Qty=Days*10
County=rep("Washington",length(Days))
df1=data.frame(County, Qty, Days)

# County 2 data
Days=seq(1,15,1)
Qty=Days*20
County=rep("Jefferson",length(Days))
df2=data.frame(County, Qty, Days)

# County 1 and 2 data
df3=rbind(df1,df2)

# calculate ranges for x scales
yrng=range(df3$Qty)
xrng=range(df3$Days)

# Scatter Plots
fname=paste("C:/test",".pdf",sep="");
pdf(fname,10,8,onefile=TRUE,paper="a4r");

p <- ggplot()
cnty=unique(df3$County)
n=length(unique(df3$County))
for (i in 1:n){
  df4<-subset(df3, County==cnty[i])
  p <- …
Run Code Online (Sandbox Code Playgroud)

r scale ggplot2

5
推荐指数
1
解决办法
7283
查看次数

初学者提示使用plyr计算各组之间的逐年变化

我是plyr(和R)的新手并且正在寻求一些帮助以便开始.使用棒球数据集作为一个例子,我如何计算联盟和球队(lg和球队)在"击球"中的同比变化(同比)变化?

library(plyr)
df1 <- aggregate(ab~year+lg+team, FUN=sum, data=baseball)
Run Code Online (Sandbox Code Playgroud)

在进行了一些聚合以简化数据名称之后,数据看起来像这样:

head(df1)

  year lg team   ab
  1884 UA  ALT  108
  1997 AL  ANA 1703
  1998 AL  ANA 1502
  1999 AL  ANA  660
  2000 AL  ANA   85
  2001 AL  ANA  219
Run Code Online (Sandbox Code Playgroud)

我想最终得到像这样的东西

  year lg team   ab yoy
  1997 AL  ANA 1703  NA
  1998 AL  ANA 1502  -201
  1999 AL  ANA  660  -842
  2000 AL  ANA   85  -575
  2001 AL  ANA  219  134
Run Code Online (Sandbox Code Playgroud)

我开始写下面的函数,我认为这是错误的:

yoy.func <- function(df) {
  lag <- c(df$ab[-1],0)
  cur <- c(df$ab[1],0)
  df$yoy …
Run Code Online (Sandbox Code Playgroud)

r plyr dataframe

5
推荐指数
2
解决办法
4484
查看次数

当所有出现的自变量都是NA时的线性模型

当所有出现的独立/解释变量都是NA(即x3下面)时,我正在寻找关于如何处理NA的线性回归的建议.

我知道明显的解决方案是从模型中排除有问题的独立/解释变量,但我循环遍历多个区域,并且不希望每个区域都有不同的功能形式.

以下是一些示例数据:

set.seed(23409)
n <- 100

time <- seq(1,n, 1)
x1 <- cumsum(runif(n))           
y  <- .8*x1 + rnorm(n, mean=0, sd=2)
x2 <- seq(1,n, 1)       
x3 <- rep(NA, n)            
df <- data.frame(y=y, time=time, x1=x1, x2=x2, x3=x3)

# Quick plot of data
library(ggplot2)
library(reshape2)
df.melt <-melt(df, id=c("time"))

p <- ggplot(df.melt, aes(x=time, y=value)) + 
  geom_line() + facet_grid(variable ~ .)
p
Run Code Online (Sandbox Code Playgroud)

我已阅读文档lm并尝试了各种na.action设置但没有成功:

lm(y~x1+x2+x3, data=df, singular.ok=TRUE)

lm(y~x1+x2+x3, data=df, na.action=na.omit)
lm(y~x1+x2+x3, data=df, na.action=na.exclude)

lm(y~x1+x2+x3, data=df, …
Run Code Online (Sandbox Code Playgroud)

r dataframe lm na

5
推荐指数
1
解决办法
994
查看次数

如何使geom_boxplot异常值与抖动的geom_points"对齐"?

如何使geom_boxplot异常值与抖动的geom_points完美叠加?

例如,我希望geom_boxplot中的异常值在抖动后显示为geom_point实际点上的"十字线"?

library(ggplot2)
p <- ggplot(mtcars, aes(factor(cyl), mpg)) + 
  geom_boxplot(outlier.shape=10, outlier.size=8)  +
  geom_point(aes(factor(cyl), mpg, color=mpg),  position="jitter", size=4)
p
Run Code Online (Sandbox Code Playgroud)

情节

任何帮助将不胜感激.

graphics r ggplot2

5
推荐指数
2
解决办法
1377
查看次数

从Web到R读取文件名列表

我试图从网站上读取很多csv文件到R中.Threa是每日(仅限工作日)文件的多年.所有文件都具有相同的数据结构.我可以使用以下逻辑成功读取一个文件:

# enter user credentials
user     <- "JohnDoe"
password <- "SecretPassword"
credentials <- paste(user,":",password,"@",sep="")
web.site <- "downloads.theice.com/Settlement_Reports_CSV/Power/"

# construct path to data
path <- paste("https://", credentials, web.site, sep="")

# read data for 4/10/2013
file  <- "icecleared_power_2013_04_10"
fname <- paste(path,file,".dat",sep="")
df <- read.csv(fname,header=TRUE, sep="|",as.is=TRUE)
Run Code Online (Sandbox Code Playgroud)

但是,我正在寻找有关如何一次读取目录中所有文件的提示.我想我可以生成一个日期序列,在循环中构造上面的文件名,并使用rbind附加每个文件,但这似乎很麻烦.此外,在尝试阅读没有文件的周末和假日时会出现问题.

下面的插入内容显示了Web浏览器中文件列表的外观:

浏览器第1部分中的文件列表

...... ......

浏览器第2部分中的文件列表

有没有扫描路径(从上面)的方式来获得该目录中的所有文件名的列表,第一是满足certin crieteia(即"icecleared_power_"开始作为也有在该位置的某些文件有不同我不想读入的起始名称然后循环read.csv通过该列表并使用rbind追加?

任何指导将不胜感激?

r dataframe

5
推荐指数
2
解决办法
4932
查看次数

如何使用ggplot分组并显示前X个类别?

我正在尝试使用ggplot来绘制公司的生产数据,并使用该点的颜色来指定年份.下图显示了基于样本数据的示例: 在此输入图像描述

然而,通常我的真实数据有50-60个不同的公司,这使得Y轴上的公司名称被完全分组并且不是非常令人愉快.

仅显示前5家公司信息(按2011年量级排名)的最简单方法是什么,然后显示其余的汇总并显示为"其他"?

下面是一些示例数据和我用于创建示例图表的代码:

# create some sample data
c=c("AAA","BBB","CCC","DDD","EEE","FFF","GGG","HHH","III","JJJ")

q=c(1,2,3,4,5,6,7,8,9,10)
y=c(2010)
df1=data.frame(Company=c, Quantity=q, Year=y)

q=c(3,4,7,8,5,14,7,13,2,1)
y=c(2011)
df2=data.frame(Company=c, Quantity=q, Year=y)

df=rbind(df1, df2)

# create plot
p=ggplot(data=df,aes(Quantity,Company))+
  geom_point(aes(color=factor(Year)),size=4)
p
Run Code Online (Sandbox Code Playgroud)

我开始沿着蛮力的方式走下去,但我认为可能有一种简单而优雅的方式可以做到这一点,我应该学习.任何帮助将不胜感激.

r ggplot2

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

标签 统计

r ×10

ggplot2 ×5

dataframe ×4

graphics ×2

plyr ×2

data.table ×1

gsub ×1

lm ×1

na ×1

pdf ×1

scale ×1

subset ×1

usergrid ×1