我想在我的数据中显示两个维度,(1)不同方面的报告实体和(2)与x轴上的数据点相关联的国家.问题是国家维度包括一个"总数",它比所有单个值都高很多,所以我需要一个自己的轴限制.
我的解决方案是尝试另一个刻面维度,但我无法让它工作并且在同一时间看起来很好.考虑以下虚拟数据:
id <- c(1,1,1,1,1,1,2,2,2,2,2,2)
country <- c("US","US","UK","World","World","World","US","US","UK","World","World","World")
value <- c(150,40,100,1000,1100,1500,5,10,20,150,200,120)
# + some other dimensions
mydat <- data.frame(id,country,value)
id country value
1 1 US 150
2 1 US 40
3 1 UK 100
4 1 World 1000
5 1 World 1100
6 1 World 1500
7 2 US 5
8 2 US 10
9 2 UK 20
10 2 World 150
11 2 World 200
12 2 World 120
Run Code Online (Sandbox Code Playgroud)
如果我使用构面网格显示世界总数,则也会强制其他国家/地区的轴限制:
mydat$breakdown <- mydat$country == "World"
ggplot(mydat) + aes(x=country,y=value) + …Run Code Online (Sandbox Code Playgroud) 我想创建一个表,其中各列的条目"旋转"到列标题.该表用于报告目的 - 我的用户希望通过Excel(使用Microsoft Query)查询数据,问题是在Excel中进行数据透视会使文件变得非常大且速度慢,即使对于中等大小的数据集(~100k数据点) ).
请考虑以下示例:
CREATE TABLE tt
(
"COMMODITY" VARCHAR2(4000 BYTE),
"MARKET" VARCHAR2(4000 BYTE),
"BID_ASK" VARCHAR2(4000 BYTE),
"PRICE" NUMBER
);
INSERT INTO tt VALUES ('Gold','US','Ask',1.1);
INSERT INTO tt VALUES ('Gold','US','Bid',1);
INSERT INTO tt VALUES ('Gold','EU','Ask',1.2);
INSERT INTO tt VALUES ('Gold','EU','Bid',1.1);
INSERT INTO tt VALUES ('Oil','US','Ask',11);
INSERT INTO tt VALUES ('Oil','US','Bid',10);
INSERT INTO tt VALUES ('Oil','EU','Ask',12);
INSERT INTO tt VALUES ('Oil','EU','Bid',11);
Run Code Online (Sandbox Code Playgroud)
我想要实现的输出类似于(确切的列标题并不重要):
COMMODITY 'US_Bid' 'US_Ask' 'EU_Bid' 'EU_Ask'
Gold 1 1.1 1.1 1.2
Oil 10 11 11 12
Run Code Online (Sandbox Code Playgroud)
现在可以直接转动单个列:
SELECT …Run Code Online (Sandbox Code Playgroud)