我在melt()
中掙扎了一下id.vars
以及如何使它與ggplot()
一起使用。ggplot的熔融數據的標識符
比方說,我得到這個數據在加利福尼亞州人口的種族,年齡,性別和自1970年以來:
ca1970_1989<-read.table(
url('http://www.dof.ca.gov/research/demographic/data/race-ethnic/1970-89/documents/California.txt'),
header=F,strip.white=TRUE,stringsAsFactors=T)
names(ca1970_1989)<-c('County name','Year','Sex','Age','Total Population','White Population','Hispanic Population','Asian & Pacific Islander Population','Black Population','American Indian Population')
我不需要年齡暫且這麼我總結說了。
ca1970_1989.agg<-aggregate(ca1970_1989[,6:10],by=list(ca1970_1989$Sex,ca1970_1989$Year),FUN=sum)
我想ggplot()
繪製它,所以我融化酌情:
ca1970_1989.m<-melt(ca1970_1989.agg, id.vars=c('Group.1','Group.2')) names(ca1970_1989.m)[1:2]<-c('Sex','Year')
> head(ca1970_1989.m)
Sex Year variable value
1 FEMALE 1970 White Population 7845344
2 MALE 1970 White Population 7635379
3 FEMALE 1971 White Population 7848106
4 MALE 1971 White Population 7626582
5 FEMALE 1972 White Population 7827480
6 MALE 1972 White Population 7597465
我想傳遞給ggplot,但讓它正確地知道有,事實上,一個額外的標識符(性別),因此它可以區分男性和女性的價值觀。
如果我打這個電話,我不會捕獲Sex
分組。
ggplot(ca1970_1989.m, aes(x=Year, y=value, group=variable), colour=variable)) +
geom_line()
我應該使用cast
有variable
是性別和種族的組合?我應該首先使用melt()
與id.vars
參數有什麼不同?
任何幫助表示讚賞。
我根本不關注。您的數據中存在性別變量。爲什麼ggplot不能使用變量'Sex'(如果你告訴它)? – joran
,因爲它是禁忌。 – flodel
我正在使用這個調用,所以問題在於我使用'variable'作爲分組級別。我可以同時使用'變量'和'性別'嗎? 'ggplot(ca1970_1989.m,aes(x = Year,y = value,group = variable,color = variable))+ geom_line()' – ako