Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 对变量的不同值重复sqldf_R_Sqldf - Fatal编程技术网

R 对变量的不同值重复sqldf

R 对变量的不同值重复sqldf,r,sqldf,R,Sqldf,只是一点背景:我是通过统计学进入编程领域的,我没有太多正式的编程经验,我只知道如何让事情顺利进行。我愿意接受来自不同方向的任何建议,但我目前正在使用多个sqldf查询来获取所需的数据。我最初在SAS中开始统计编程,我经常使用的功能之一是宏编程能力 举一个简单的例子,我的表a如下所示: Name Sex A B DateAdded John M 72 1476 01/14/12 Sue F 44 3269

只是一点背景:我是通过统计学进入编程领域的,我没有太多正式的编程经验,我只知道如何让事情顺利进行。我愿意接受来自不同方向的任何建议,但我目前正在使用多个sqldf查询来获取所需的数据。我最初在SAS中开始统计编程,我经常使用的功能之一是宏编程能力

举一个简单的例子,我的表a如下所示:

Name      Sex    A    B       DateAdded
John      M      72   1476    01/14/12
Sue       F      44   3269    02/09/12
Liz       F      90   7130    01/01/12
Steve     M      21   3161    02/29/12
我当前使用的select语句的形式如下:
sqldf(“从DateAdded>='2012-01-01'和DateAdded中选择平均值(A),求和(B),读取数据,将
DateAdded
列转换为
Date
类,添加
yearmon
(年/月)列,然后使用
sqldf
aggregate
按年/月进行聚合:

Lines <- "Name      Sex    A    B       DateAdded
John      M      72   1476    01/14/12
Sue       F      44   3269    02/09/12
Liz       F      90   7130    01/01/12
Steve     M      21   3161    02/29/12"

DF <- read.table(text = Lines, header = TRUE)

# convert DateAdded column to Date class
DF$DateAdded <- as.Date(DF$DateAdded, format = "%m/%d/%y")

# add a year/month column using zoo
library(zoo)
DF$yearmon <- as.yearmon(DF$DateAdded)
最后两行的结果是:

> sqldf("select yearmon, avg(A), avg(B) from DF group by yearmon")
   yearmon avg(A) avg(B)
1 Jan 2012   81.0   4303
2 Feb 2012   32.5   3215
> 
> # 2. using aggregate
> aggregate(cbind(A, B) ~ yearmon, DF, mean)
   yearmon    A    B
1 Jan 2012 81.0 4303
2 Feb 2012 32.5 3215
编辑:


关于按周执行的问题,请参见中的
nextfri
函数。读入数据,将
DateAdded
列转换为
Date
类,添加
yearmon
(年/月)列,然后使用
sqldf
aggregate
按年/月进行聚合:

Lines <- "Name      Sex    A    B       DateAdded
John      M      72   1476    01/14/12
Sue       F      44   3269    02/09/12
Liz       F      90   7130    01/01/12
Steve     M      21   3161    02/29/12"

DF <- read.table(text = Lines, header = TRUE)

# convert DateAdded column to Date class
DF$DateAdded <- as.Date(DF$DateAdded, format = "%m/%d/%y")

# add a year/month column using zoo
library(zoo)
DF$yearmon <- as.yearmon(DF$DateAdded)
最后两行的结果是:

> sqldf("select yearmon, avg(A), avg(B) from DF group by yearmon")
   yearmon avg(A) avg(B)
1 Jan 2012   81.0   4303
2 Feb 2012   32.5   3215
> 
> # 2. using aggregate
> aggregate(cbind(A, B) ~ yearmon, DF, mean)
   yearmon    A    B
1 Jan 2012 81.0 4303
2 Feb 2012 32.5 3215
编辑:


关于按周进行的问题,请参见中的
nextfri
函数。

您可以使用SQL的
groupby
函数。您使用哪个数据库?据我所知,您不能
groupby
一系列日期。我有MMDDYY形式的日期,我想将它们分为月和周。例如,MySQL有一个月函数:你可以用SQL的
分组功能来代替。你使用哪个数据库?据我所知,你不能
按一系列日期分组。我有MMDDYY格式的日期,我想把它们分为几个月和几个星期。例如,MySQL有一个月函数:谢谢!不知道为什么我没有想到myse如果,但这正是我需要做的。谢谢!我不知道为什么我自己没有想到这一点,但这正是我需要做的。