我是R和ggplot2的新手 - 任何建议都值得赞赏!
每年我都会尝试绘制ggplot中不同技能组之间的收入比率。即我想在同一个地块中获得收入水平Level_4 / Level_3,Level_4 / Level_2和Level_4 / Level_1。
数据框列标题是技能(级别1到4),年份和平均收入
这是我数据框的摘录:
Skills Year MeanIncome
1 Level_1 1970 9330.00
2 Level_1 1973 11525.00
3 Level_1 1976 12740.00
4 Level_1 1979 15533.33
14 Level_2 1970 10171.00
15 Level_2 1973 12400.00
16 Level_2 1976 12012.50
17 Level_2 1979 18550.00
27 Level_3 1970 8580.00
28 Level_3 1973 12433.33
29 Level_3 1976 14673.33
30 Level_3 1979 14400.00
40 Level_4 1973 35000.00
41 Level_4 1976 30000.00
42 Level_4 1979 36000.00
提前感谢任何建议。
(为易读性而编辑)
答案 0 :(得分:0)
您可以通过重新整形数据帧(此处称为数据)来计算值:
require(reshape)
tmp <- cast(Data,Skills~Year,value="MeanIncome")
ratio <- tmp[,5]/ tmp[,2:4]
rownames(ratio) <- tmp$Year
比率是您可以绘制的数据。由于我真的不明白你希望你的情节如何,我无法帮助你。但是使用比率数据框架并不困难。
编辑:只是为了帮助TS,我包含了我以前在数据中读取的代码:
Data <- read.table(textConnection(
"Skills Year MeanIncome
Level_1 1970 9330.00
Level_1 1973 11525.00
Level_1 1976 12740.00
Level_1 1979 15533.33
Level_2 1970 10171.00
Level_2 1973 12400.00
Level_2 1976 12012.50
Level_2 1979 18550.00
Level_3 1970 8580.00
Level_3 1973 12433.33
Level_3 1976 14673.33
Level_3 1979 14400.00
Level_4 1973 35000.00
Level_4 1976 30000.00
Level_4 1979 36000.00")
, header=T)
答案 1 :(得分:0)
谢谢,这帮了很多忙。我修改了你的答案以得到我想要的东西:
require(reshape)
tmp <- cast(data,Year~Skills,value="Meanincome")
ratio <- tmp[,3:5]/tmp[,2]
rownames(ratio) <- tmp$Year