从数据帧,是否有聚集(一个简单的方法sum
,mean
,max
同时等c)中多个变量?
以下是一些示例数据:
library(lubridate)
days = 365*2
date = seq(as.Date("2000-01-01"), length = days, by = "day")
year = year(date)
month = month(date)
x1 = cumsum(rnorm(days, 0.05))
x2 = cumsum(rnorm(days, 0.05))
df1 = data.frame(date, year, month, x1, x2)
Run Code Online (Sandbox Code Playgroud)
我想同时按年和月汇总数据框中的变量x1
和x2
变量df2
.以下代码聚合x1
变量,但是是否也可以同时聚合x2
变量?
### aggregate variables by year month
df2=aggregate(x1 ~ year+month, data=df1, sum, na.rm=TRUE)
head(df2)
Run Code Online (Sandbox Code Playgroud)
任何建议将不胜感激.
我有一个数据帧,我想计算每组内的行数.我通常使用该aggregate
函数对数据求和如下:
df2 <- aggregate(x ~ Year + Month, data = df1, sum)
Run Code Online (Sandbox Code Playgroud)
现在,我想计算观察结果,但似乎无法找到适当的论据FUN
.直觉上,我认为它会如下:
df2 <- aggregate(x ~ Year + Month, data = df1, count)
Run Code Online (Sandbox Code Playgroud)
但是,没有这样的运气.
有任何想法吗?
一些玩具数据:
set.seed(2)
df1 <- data.frame(x = 1:20,
Year = sample(2012:2014, 20, replace = TRUE),
Month = sample(month.abb[1:3], 20, replace = TRUE))
Run Code Online (Sandbox Code Playgroud) 在尝试将新行重叠到现有ggplot时,我收到以下错误:
Error: ggplot2 doesn't know how to deal with data of class uneval
Run Code Online (Sandbox Code Playgroud)
我的代码的第一部分工作正常.以下是来自美国中西部电力市场的"近期"每小时风力发电数据的图像.
现在我想用Red重叠最后两天的观察值.它应该很容易,但我无法弄清楚为什么我会收到错误.
任何帮助将不胜感激.
以下是可重复的示例:
# Read in Wind data
fname <- "https://www.midwestiso.org/Library/Repository/Market%20Reports/20130510_hwd_HIST.csv"
df <- read.csv(fname, header=TRUE, sep="," , skip=7)
df <- df[1:(length(df$MKTHOUR)-5),]
# format variables
df$MWh <- as.numeric(df$MWh)
df$Datetime <- strptime(df$MKTHOUR, "%m/%d/%y %I:%M %p")
# Create some variables
df$Date <- as.Date(df$Datetime)
df$HrEnd <- df$Datetime$hour+1
# Subset recent and last data
last.obs <- range(df$Date)[2]
df.recent <- subset(df, Date %in% seq(last.obs-30, last.obs-2, by=1))
df.last <- subset(df, Date %in% seq(last.obs-2, …
Run Code Online (Sandbox Code Playgroud) 有没有办法提取stat_smooth返回的拟合线的值?
我使用的代码如下所示:
p <- ggplot(df1, aes(x=Days, y= Qty,group=Category,color=Category))
p <- p + stat_smooth(method=glm, fullrange=TRUE)+ geom_point())
Run Code Online (Sandbox Code Playgroud)
这个新用户会非常感谢任何指导.
我有一个带有日期变量的[r]大数据框,它反映了该月的第一天.是否可以轻松地创建代表该月最后一天的新数据框日期变量?
以下是一些示例数据:
date.start.month=seq(as.Date("2012-01-01"),length=4,by="months")
df=data.frame(date.start.month)
df$date.start.month
"2012-01-01" "2012-02-01" "2012-03-01" "2012-04-01"
Run Code Online (Sandbox Code Playgroud)
我想返回一个新的变量:
"2012-01-31" "2012-02-29" "2012-03-30" "2012-04-27"
Run Code Online (Sandbox Code Playgroud)
我尝试了以下但是没有成功:
df$date.end.month=seq(df$date.start.month,length=1,by="+1 months")
Run Code Online (Sandbox Code Playgroud)
任何对这个新[r]用户的指导将不胜感激.
我试图取代两个"st." 和"ste." 用"st".似乎以下应该可以工作,但它不会:
require("stringr")
county <- c("st. landry", "ste. geneveve", "st. louis")
str_replace_all(county, c("st\\.", "ste\\."), "st")
Run Code Online (Sandbox Code Playgroud) 我在一个循环中绘制了几个ggplot图表(我知道,我知道不要循环使用plyr ...但是)并且很奇怪是否有办法将小数精度设置为一个小数(即0.0).我正在使用以下比例转换.
p <- p + scale_y_log10()
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
使用时:
facet_grid(SomeGroup ~, scales="free_y")
Run Code Online (Sandbox Code Playgroud)
是否可以指定虽然您希望标尺"自由",但您希望它们四舍五入到最接近的整数?
任何援助都将受到极大的赞赏.
R Plyr包中变量(即"变量")之前点的目的是什么?
例如,从R帮助文件:
ddply(.data, .variables, .fun = NULL, ...,
.progress = "none", .drop = TRUE, .parallel = FALSE)
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激
Anone知道如何在ggplot中更改图例标题的位置?
我使用以下代码将图例移到底部并使其水平
p <- p + opts(legend.position = 'bottom', legend.direction = 'horizontal')
Run Code Online (Sandbox Code Playgroud)
但现在我希望标题位于图例的左侧而不是上方.我看了下面的地方,但无法找到它或弄明白:
https://github.com/hadley/ggplot2/wiki/Legend-Attributes http://had.co.nz/ggplot2/book/toolbox.r
任何帮助将不胜感激