2013-05-13 8 views
6

मैं पूछना चाहता हूं कि प्रश्न शीर्षक में वर्णित इस बग को कैसे ठीक किया जाए? कल कल, कोड ठीक काम कर रहा था और प्लॉटिंग दिनचर्या वांछित ग्राफ का उत्पादन किया। आज जाग गया और कुछ विशेषताओं को जोड़ने की कोशिश की और फिर त्रुटि संदेश मिला।ggplot 2 "त्रुटि: सतत पैमाने पर आपूर्ति की गई असतत मूल्य"

कोई सुराग क्यों और इसे कैसे ठीक किया जाए?

Thx

डाटा लिंक: Data.csv

कोड:

# Loading data 
    morStats <- read.csv(file = "F:/Purdue University/RA_Position/PhD_ResearchandDissert/PhD_Draft/DissertationDraft/MoroccoCGE-CC_Stats.csv", header=TRUE, sep=",", na.string="NA", dec=".", strip.white=TRUE) 

    # Transferring the .csv data into data frames 
    moroccostats <- as.data.frame(morStats) 

    # Changing the data in the dataframe to "as.numeric" 
    moroccostats[3:38] <- sapply(moroccostats[3:38],as.numeric) 
    moroccostats <- droplevels(moroccostats) 

    # reorder 
    moroccostats <- transform(moroccostats,year=factor(year,levels=unique(year))) 

    # Load packages 
    library(reshape2) 
    library(ggplot2) 
    library(lattice) 
    library(grid) 
    library(plyr) 
    library(gridExtra) 
    library(scales) 

    #---------------------------------------------------------------------- 
    # Figure 1: Evolution of population (in absolute terms) 1960-2050 
    #--------------------------------------------------------------------- 

    #_Code_Begin... 

    moroccostats.f <- melt(moroccostats, id="year") 
    morstats.pop <- moroccostats.f[moroccostats.f$variable %in% c("pop_t","pop_ur","pop_ru"),] 

    Figure1 <- ggplot(data=morstats.pop,aes(x=factor(year), y=value,colour=variable)) 
    Figure1 + geom_line(aes(group=factor(variable)),size=1) + geom_point() + scale_colour_manual("Population",labels=c("Total","Urban","Rural"),values = c("black","red","blue")) + 
    labs(y="Population (in 1000)") + 
    theme(axis.text.x = element_text(colour = 'black', angle = 90, size = 13, hjust = 1, vjust = 0.5),axis.title.x = element_blank()) + 
    theme(axis.text.y = element_text(colour = 'black', size = 13, hjust = 0.5, vjust = 0.5), axis.title.y = element_text(size = 10, hjust = 0.5, vjust = 0.2, face = 'bold')) + 
    scale_x_discrete(breaks = seq(1960, 2050, by=2)) + 
    scale_y_continuous(breaks = seq(0, 42000, by=5000)) 

    #_Code_End... 

उत्तर

10

moroccostats संरचना

> str(moroccostats) 
'data.frame': 91 obs. of 38 variables: 
$ year   : Factor w/ 91 levels "1960","1961",..: 1 2 3 4 5 6 7 8 9 10 ... 
$ periodframe  : Factor w/ 4 levels "0","Phase 1 (1965 to 1985)",..: 1 1 1 1 1 2 2 2 2 2 ... 
$ pop_t   : num 11635 11897 12177 12473 12785 ... 
$ pop_ur   : num 3395 3547 3703 3862 4026 ... 
... 

जब आप पिघल उस वर्ष से moroccostats.f प्राप्त करने के लिए, आप प्राप्त है

> str(moroccostats.f) 
'data.frame': 3367 obs. of 3 variables: 
$ year : Factor w/ 91 levels "1960","1961",..: 1 2 3 4 5 6 7 8 9 10 ... 
$ variable: Factor w/ 37 levels "periodframe",..: 1 1 1 1 1 1 1 1 1 1 ... 
$ value : chr "0" "0" "0" "0" ... 

ध्यान दें कि value एक चरित्र है, क्योंकि periodframe एक कारण है। मैं अनुमान लगा रहा हूं कि periodframe एक चरित्र ("चरण 1 (1 9 65 से 1 9 85)" बिट्स के लिए एक संख्या होने से चला गया था।

जब से तुम केवल pop_t और pop_ur और pop_ru कॉलम योजना बना रहे हैं, उन

morstats.pop <- melt(moroccostats[c("year","pop_t","pop_ur","pop_ru")], id="year") 

पिघलने तो आप अन्य प्रकार अप्रासंगिक कॉलम के लिए देय राशि को coercions बारे में चिंता करने की जरूरत नहीं है इससे पहले कि बाहर खींच।

+0

यह ठीक काम करता है, मदद के लिए धन्यवाद :) – iouraich

संबंधित मुद्दे