我目前有一个存储过程,它返回帐号和相关详细信息的列表.结果集可能包含同一帐号的多个条目.我还想获得一些汇总信息,例如特定结果集中包含多少个不同的帐户.有没有办法从我的存储过程结果中检索这样的视图,如
SELECT AccountNumber, Count(*)
FROM mystoredproc_sp
GROUP BY AccountNumber
Run Code Online (Sandbox Code Playgroud)
如果它需要包含在另一个存储过程中,那很好,但我希望能够至少从第一个SP中已经存在的逻辑中受益,而不会复制其大部分代码.
我想问的问题最好通过一个例子说明,所以请耐心等待.假设我有下表:
TypeID Gender Count
1 M 10
1 F 3
1 F 6
3 M 11
3 M 8
Run Code Online (Sandbox Code Playgroud)
我想为TypeID和Gender的每种可能组合聚合这个.其中TypeID可以是1,2或3,而Gender可以是M或F.所以我想要的是以下内容:
TypeID Gender SUM(Count)
1 M 10
1 F 9
2 M 0
2 F 0
3 M 19
3 F 0
Run Code Online (Sandbox Code Playgroud)
我可以想到一些可能做到这一点的方法,但对我来说,它们似乎都不是特别优雅.
任何建议将不胜感激!
卡尔
我在文件中的数据如下所示,有多列:
A B
Tiger Animal
Parrot Bird
Lion Animal
Elephant Animal
Crow Bird
Horse Animal
Man Human
Dog Animal
Run Code Online (Sandbox Code Playgroud)
我想在列A中找到与列B中的不同条目对应的条目数.如果可能在R中,或者可能是perl脚本.
输出为:
Animal 5
Bird 2
Human 1
Run Code Online (Sandbox Code Playgroud)
此外,如果可能的话,找出列A中的条目是否已经重复列B中的不同条目
A B
Tiger Animal
Tiger Animal
Run Code Online (Sandbox Code Playgroud) 我面临着将数据汇总到日常数据的问题.我有一个数据框,其中删除了NA(下面给出了数据图片的链接).数据每天收集3次,但有时由于NAs,每天只有1或2个条目; 有些日子数据完全丢失了.
我现在有兴趣计算"dist"的每日平均值:这意味着总结一天的"dist"数据并将其除以每天的条目数(如果当天没有数据丢失则为3).我想通过一个循环来做到这一点.我怎么能用循环来做这个?问题是,有时我每天有3个条目,有时只有2个甚至1个.我想告诉R 每天,它应该总结"dist"并将其除以每个可用的条目数天.
我根本不知道如何为此目的制定for循环.如果你能就这个问题给我任何建议,我将不胜感激.感谢您的努力和亲切的问候,
一月
数据框:http://www.pic-upload.de/view-11435581/Data_loop.jpg.html
编辑:我按照建议使用了aggregate和tapply,但是,数据的平均值并没有真正计算:
Group.1 x
1 2006-10-06 12:00:00 636.5395
2 2006-10-06 20:00:00 859.0109
3 2006-10-07 04:00:00 301.8548
4 2006-10-07 12:00:00 649.3357
5 2006-10-07 20:00:00 944.8272
6 2006-10-08 04:00:00 136.7393
7 2006-10-08 12:00:00 360.9560
8 2006-10-08 20:00:00 NaN
Run Code Online (Sandbox Code Playgroud)
使用的代码是:
dates<-Dis_sub$date
distance<-Dis_sub$dist
aggregate(distance,list(dates),mean,na.rm=TRUE)
tapply(distance,dates,mean,na.rm=TRUE)
Run Code Online (Sandbox Code Playgroud) 我们假设我有一个字符串集合,如下所示:
IList<string> myList = new List<string>(){"one", "two", "three"};
Run Code Online (Sandbox Code Playgroud)
使用myList.Aggregate我希望最终得到"'one','two','three'"(包括单引号)
有人只有使用聚合函数才能做到这一点吗?我正在思考一些问题
myList.Aggregate((increment, seed) => string.Concat(increment, ", ", seed));
Run Code Online (Sandbox Code Playgroud)
但这只是解决方案的一半.
我有以下数据框:
id<-c(1,1,1,1,1,3,3,3,3)
spent<-c(10,20,30,40,50,60,70,80,90)
date<-c("11-11-07","11-11-07","23-11-07","12-12-08","17-12-08","11-11-07","23-11-07","23- 11-07","16-01-08")
df<-data.frame(id,date,spent)
df$date2<-as.Date(as.character(df$date), format = "%d-%m-%y")
id date spent date2
1 1 11-11-07 10 2007-11-11
2 1 11-11-07 20 2007-11-11
3 1 23-11-07 30 2007-11-23
4 1 12-12-08 40 2008-12-12
5 1 17-12-08 50 2008-12-17
6 3 11-11-07 60 2007-11-11
7 3 23-11-07 70 2007-11-23
8 3 23-11-07 80 2007-11-23
9 3 16-01-08 90 2008-01-16
Run Code Online (Sandbox Code Playgroud)
我需要每天计算总和spent,id并将其包含在框架工作中,如下所示:
id date spent date2 sum.spent
1 1 11-11-07 10 2007-11-11 10
2 1 11-11-07 20 2007-11-11 …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用该aggregate功能cbind,但我必须遗漏一些东西.
我已经在使用Aggregate for Multiple Aggregations中看到了我可以简单地定义哪个列我想要修复以及我想添加哪个列,但是我无法得到我期望的结果.
我有:
x <- data.frame(alfa = 1:9, beta = rep(1:3, 3))
alfa beta
1 1 1
2 2 2
3 3 3
4 4 1
5 5 2
6 6 3
7 7 1
8 8 2
9 9 3
Run Code Online (Sandbox Code Playgroud)
我想检索由beta列中的条目汇总的条目的平均值.为此,我尝试过:
aggregate(cbind(alfa) ~ beta, data = x, FUN = function(x) c(gama = mean(x)) )
Run Code Online (Sandbox Code Playgroud)
这给了我:
beta alfa
1 1 4
2 2 5
3 3 6
Run Code Online (Sandbox Code Playgroud)
结果不应该是这样的:
alfa …Run Code Online (Sandbox Code Playgroud) 我在Pandas数据框中有下表:
名字诞生
jack 1989-11-17
joe 1988-09-10
ben 1980-10-20
kate 1985-05-15
nichos 1986-07-05
john 1989-11-12
tom 1980-10-25
jason 1985-05-21
eron 1985-07-10
yun 1989-11-05
kung 1986-07-01
Run Code Online (Sandbox Code Playgroud)
我想在出生月份做一些聚合,结果应该是这样的:
moth cnt
1989-11 3
1988-09 1
1986-07 2
1985-07 1
1985-05 2
1980-10 2
Run Code Online (Sandbox Code Playgroud)
这样做有什么方便吗?非常感谢
我有数据反映了每个大陆河流的宽度.下面是一个示例数据集.我只想把数据放到我展示的表格中.
dat <- read.table(text =
"width continent bin
5.32 Africa 10
6.38 Africa 10
10.80 Asia 20
9.45 Africa 10
22.66 Africa 30
9.45 Asia 10",header = TRUE)
Run Code Online (Sandbox Code Playgroud)
如何融合上述玩具数据集来创建此数据框?
Bin Count Continent
10 3 Africa
10 1 Asia
20 1 Asia
30 1 Africa
Run Code Online (Sandbox Code Playgroud) 如何在(例如)STL容器中引入聚合初始化的支持以正确构建它们?我的意思是:
struct A { int i; char c; };
std::list< A > l; // empty
l.insert(std::memberwise, 1, '2');
// <=> l.insert({1, '2'});
Run Code Online (Sandbox Code Playgroud)
std::memberwise是一个可能的标签,就像在STL中已经存在一样std::piecewise_construct,std::allocator_arg等等.
从理论上讲,以这种方式扩展STL容器是否可行?有没有最好的方法("STL-way")来做到这一点?它看起来怎么样?
问题是关于界面设计和(内部)实现的可能性(不是细节).
我确定容器使用::new (static_cast< void * >(pstorage) value_type(std::forward< Args >(args)...);内部的东西.我确定,用括号替换括号会破坏更改.因为非缩小,例如
l.insert({1, '2'});评论中一般提到可能会导致过度移动value_type.很可能这一步将由任何现代编译器优化,但无论哪种方式都有过多的花括号.