1. 哪个行业的上榜公司最多?
看得出来,银行、石油、制药是前三强。
2. 哪个国家的上榜公司最多?
美国公司占据了大部分,日本和英国则位居其后。
3. 哪个行业最赚钱?
根据各行业公司的净利润中位数进行排序,地产、采矿、石油这三个行业公司利润不错。
4. 公司的排名变化如何?
根据2011年和2012年的排位之差,计算各公司的排名变化,对于2011年未上榜公司假设为501名。大致上正态分布,在退步前十名中有知名的Nokia、Sony、Philips。
5. 哪个行业的排名进步最大?
取其行业公司排名变化的中位数,旅游、地产、烟草公司排名有进步。
5. 中国的上榜公司排名总体变化如何?
和上面的一样,取各国公司排名变化的中位数,看得出中国上榜公司的排名略有下降。东南亚新兴市场的公司有很大进步。
需要说明的是FT只提供了排名的PDF文档,如果各位数据爱好者要折腾的话需要先将其转为Excel格式,或者下载我已经整理好的CSV文档。
R代码如下:
mydata <- read.csv('d:\\ft500.csv',T,stringsAsFactors = F)
data <- transform(mydata,
Country = factor(Country),
Sector = factor(Sector),
value = as.numeric(gsub(',','',value)),
netincome = as.numeric(gsub(',','',netincome)),
employees = as.numeric(gsub(',','',employees)),
totalasset = as.numeric(gsub(',','',totalasset)),
turnover = as.numeric(gsub(',','',turnover)),
price = as.numeric(gsub(',','',price)))
library(ggplot2)
# 哪个行业的上榜公司最多
data$Sector <- with(data,reorder(Sector,Sector,function(x) length(x)))
p <- ggplot(data=data)
p + geom_bar(aes(x=Sector,y=..count..),fill='deepskyblue') + coord_flip()
# 哪个国家的上榜公司最多?
data$Country <- with(data,reorder(Country,Country,function(x) length(x)))
p + geom_bar(aes(x=Country,y=..count..),fill='deepskyblue') + coord_flip()
# 哪个行业最赚钱
isna <- is.na(data$employees) |is.na(data$netincome)
data2 <- data[!isna,]
data2$Sector <- with(data2,reorder(Sector,netincome,median))
p2 <- ggplot(data=data2,aes(x=Sector,y=netincome))
p2 + stat_summary(fun.y=median,geom='bar',fill='deepskyblue') + coord_flip()
# 排名变化情况
data$X2011[is.na(data$X2011)] <- 501
data$change <- with(data,X2011-X2012)
p + geom_histogram(aes(x=change,y=..density..),
fill='deepskyblue',color='white')
# 进步前十名
data[order(data$change,decreasing=T),][1:10,]
# 退步前十名
data[order(data$change,decreasing=F),][1:10,]
# 行业的进退
data$Sector <- with(data,reorder(Sector,change,median))
p3 <- ggplot(data=data,aes(x=Sector,y=change))
p3 + stat_summary(fun.y=median,geom='bar',fill='deepskyblue') + coord_flip()
# 国家的进退
data$Country <- with(data,reorder(Country,change,median))
p4 <- ggplot(data=data,aes(x=Country,y=change))
p4 + stat_summary(fun.y=median,geom='bar',fill='deepskyblue') + coord_flip()
# 各变量之间的相关性
library(corrgram)
data3 <- data[,c(6:13,15)]
corrgram(order = T, data3, lower.panel = panel.shade, upper.panel = panel.pie)
太牛b了,我平时工作闲暇之余最喜欢来您这逛了!
回复删除多谢夸奖,呵呵
删除能解释一些 函数吗?
回复删除对于我有点难
这里主要是两类函数,一个是order排序,另一些是ggplot绘图函数,可以参见本博客之前的贴子,如果不明白的具体问题,也可以给我发电邮。
删除function(x) length(x) 这个没有看懂。为什么要用with函数?
回复删除with是为了可以取到数据框中的变量。
删除me too
回复删除