我在创建带有汇总数据的堆积条形图时遇到了麻烦.当处理来自其他人的报告的聚合表时,我通常使用Excel,但我想开始在R中做我的所有图表,可能使用格子或ggplot.在Excel中,执行以下聚合数据的堆叠条形图需要几次单击(插入,列图表,堆积列),您将得到类似的结果.
.
除了想在这张图表中RI也希望用ggplot的刻面,即把两个堆叠barcharts并排ggplot比较两个组(A和B).I've与其他图表发挥各地,这似乎是最好的选择.这是数据.Excel图表仅显示组A(数字是百分比).
D<-as.data.frame(structure(list(Group = c("A", "A", "A", "A", "A",
"A", "B", "B", "B", "B", "B", "B"
), Education = c("NVQ Level 4 and above", "NVQ Level3", "NVQ Level 2",
"Below NVQ Level 2", "Other qualification", "No qualification",
"NVQ Level 4 and above", "NVQ Level3", "NVQ Level 2", "Below NVQ Level 2",
"Other qualification", "No qualification"), Full.Time = c(47,
27, 23, 17, 18, 9, 36, 26, 22, 22, 27, 12), PT.16.hours = c(20,
24, 22, 18, 18, 12, 22, 21, …Run Code Online (Sandbox Code Playgroud) 我有一个看起来像这样的数据集:
id1 id2 size
1 5400 5505 7
2 5033 5458 1
3 5452 2873 24
4 5452 5213 2
5 5452 4242 26
6 4823 4823 4
7 5505 5400 11
Run Code Online (Sandbox Code Playgroud)
其中id1和id2是在一个图形独特节点,并且size是分配给一个值涉及连接它们的边缘从 id1 给 id2.这个数据集相当大(略多于200万行).我想这样做是和大小列,按分组无序节点对的id1和id2.例如,在第一行中,我们有id1=5400和id2=5505.数据框中存在另一行,其中id1=5505和id2=5400.在分组数据中,这两行的大小列的总和将添加到单个行中.换句话说,我想总结一下我在(无序)(id1,id2)集合上的数据.我已经找到了一种方法来使用apply自定义函数来检查完整数据集中的反向列对,但这种方法非常缓慢.有没有人知道以另一种方式做到这一点的方法,可能与plyr基础包中的某些内容相比更高效?
我目前正在深入研究DDD,需要一点点启发.
我有两个实体
TempleTempleVariantTemple(耳机)包含基本信息(名称,描述,...),并有n个变体,其中包含技术说明(CAD绘图,尺寸,...)
我的第一印象是:
Temple并TempleVariant形成一个聚合 - 它们属于一起:它们似乎非常紧密耦合
Temple全部TempleVariants应该同样删除TempleVariant没有 Temple(至少没有意义)s 不可能存在但后来我读到,聚合根之外的任何内容都不允许引用另一个聚合内的实体.但实际上并没有Temple被外部实体引用而是引用了TempleVariants.
这是否意味着在(DDD)现实中Temple并且TempleVariant是不同的聚合,它们似乎只是一个聚合体?
但是,如果我删除Temple怎么办?正如我所说,TempleVariants也必须删除.但那会违反规则"一次聚合 - 改变 - 一次交易"(或者所谓的:),因为我的"感觉"是我必须在一次交易中删除它们......
Lg
warappa
entity domain-driven-design transactions aggregate reference
我有这个查询的结果
SELECT
myTable.Branch AS Branch,
myTable.Quarter AS Quarter,
SUM(myTable.Sales) AS Sales
FROM
myTable
GROUP BY
myTable.Branch,
myTable.Quarter
Branch Quarter Sales
B1 Q1 17
B1 Q2 7
B1 Q3 1
B1 Q4 8
B1 Q5 12
B2 Q1 8
B2 Q2 5
B2 Q3 2
B2 Q4 14
B2 Q5 17
Run Code Online (Sandbox Code Playgroud)
现在我想得到计算成员让我们说Q1-Q3结果应该是这样的
Branch Quarter Sales
B1 Q1 17
B1 Q2 7
B1 Q3 1
B1 Q4 8
B1 Q5 12
B1 Q1-Q3 16
B2 Q1 8
B2 Q2 5 …Run Code Online (Sandbox Code Playgroud) 我一直收到这个错误,我不太清楚这意味着什么.我的所有变量名都是一致的,没有拼写错误.我在这里错过了什么吗?
代码
datNewagg <- aggregate (dataNew, by = list('x', 'y', 'z', 'a', 'ab'),
FUN = mean)
Run Code Online (Sandbox Code Playgroud)
产生错误
Error in aggregate.data.frame(datNew, by = list("x", "y", :
arguments must have same length
Run Code Online (Sandbox Code Playgroud) 请考虑以下代码:
struct A {
int x;
};
int main() {
A a;
A b{a};
}
Run Code Online (Sandbox Code Playgroud)
这个程序是否符合C++ 11标准?在我的N3797副本中说
8.5.4列表初始化
[dcl.init.list]3:对象或类型引用的列表初始化
T定义如下:
- 如果T是聚合,则执行聚合初始化(8.5.1).
- 否则,如果T是std::initializer_list<E>,...的特化
- 否则,如果T是类类型,则考虑构造函数.枚举适用的构造函数,并使用重载决策选择最佳构造函数.如果转换任何类型需要缩小转换,则程序格式错误.
- 否则,如果初始化列表具有单个元素类型E且要么T不是引用类型,要么与引用相关E,则从该元素初始化对象或引用; 如果将元素转换为需要缩小转换T,则程序格式错误.
- 否则,如果T是引用类型,则类型引用的临时值prT是copy-list-initialized或direct-list-initialized,具体取决于引用的初始化类型,引用绑定到该临时.
- 否则,如果初始化列表没有元素,则对象进行值初始化.
- 否则,该程序格式不正确.
示例的要点是,类型是聚合,但列表初始化应该调用复制构造函数.在gcc 4.8和gcc 4.9,在C++ 11标准,它失败:
main.cpp: In function ‘int main()’:
main.cpp:7:8: error: cannot convert ‘A’ to ‘int’ in initialization
A …Run Code Online (Sandbox Code Playgroud) 通常,组中的所有行都将传递给聚合函数.我想使用条件过滤行,以便只将组中的某些行传递给聚合函数.PostgreSQL可以实现这样的操作.我想用Spark SQL DataFrame(Spark 2.0.0)做同样的事情.
代码可能看起来像这样:
val df = ... // some data frame
df.groupBy("A").agg(
max("B").where("B").less(10), // there is no such method as `where` :(
max("C").where("C").less(5)
)
Run Code Online (Sandbox Code Playgroud)
所以对于像这样的数据框:
| A | B | C |
| 1| 14| 4|
| 1| 9| 3|
| 2| 5| 6|
Run Code Online (Sandbox Code Playgroud)
结果将是:
|A|max(B)|max(C)|
|1| 9| 4|
|2| 5| null|
Run Code Online (Sandbox Code Playgroud)
是否可以使用Spark SQL?
请注意,通常max可以使用任何其他聚合函数,并且在具有任意过滤条件的同一列上可能存在多个聚合.
我正在尝试从数据树结构中计算出小时数.我可以直接在父节点下添加小时数,但是我不能包括分配给树中父节点的小时数.任何建议都会很棒.
levelName hours totalhours
1 Ned NA 1
2 °--John 1 3
3 °--Kate 1 3
4 ¦--Dan 1 1
5 ¦--Ron 1 1
6 °--Sienna 1 1
levelName hours totalHours
1 Ned NA 5
2 °--John 1 5
3 °--Kate 1 4
4 ¦--Dan 1 1
5 ¦--Ron 1 1
6 °--Sienna 1 1
# Install package
install.packages('data.tree')
library(data.tree)
# Create data frame
to <- c("Ned", "John", "Kate", "Kate", "Kate")
from <- c("John", "Kate", "Dan", "Ron", …Run Code Online (Sandbox Code Playgroud) 我有一个与此类似的问题,但由collect_list操作的列数由名称列表给出。例如:
scala> w.show
+---+-----+----+-----+
|iid|event|date|place|
+---+-----+----+-----+
| A| D1| T0| P1|
| A| D0| T1| P2|
| B| Y1| T0| P3|
| B| Y2| T2| P3|
| C| H1| T0| P5|
| C| H0| T9| P5|
| B| Y0| T1| P2|
| B| H1| T3| P6|
| D| H1| T2| P4|
+---+-----+----+-----+
scala> val combList = List("event", "date", "place")
combList: List[String] = List(event, date, place)
scala> val v = w.groupBy("iid").agg(collect_list(combList(0)), collect_list(combList(1)), collect_list(combList(2)))
v: org.apache.spark.sql.DataFrame = [iid: string, collect_list(event): …Run Code Online (Sandbox Code Playgroud) 我有一个SQL Server表,其中包含这样的记录
1 | 100
2 | 150
3 | 250
4 | 600
5 | 1550
6 | 50
7 | 300
Run Code Online (Sandbox Code Playgroud)
我需要选择随机记录,但唯一的条件是该记录值的总和达到我定义的特定数量或百分比.
1 | 100
2 | 150
6 | 50
Run Code Online (Sandbox Code Playgroud)
3 | 250
6 | 50
Run Code Online (Sandbox Code Playgroud)
7 | 300
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我这样做.