2013-10-31 28 views
1

我剛開始使用R軟件,並且在製作圖表/圖表時出現了一些問題。我使用的數據在本網站作爲樣本:http://lib.stat.cmu.edu/datasets/CPS_85_Wages在R中創建餅圖時出現問題

我把正確的列上面的變量名,並使用其進口至R

mydata = read.table("proj1.txt", header=TRUE, sep="\t") 

我想只是讓來開始一個類似南方,性別等數據的餅圖。但我嘗試了一切,似乎無法在網上找到任何信息來幫助我。我已經看到的一些餡餅圖是巨大的黑白斑點,沒有關於它們的信息。任何幫助將不勝感激!

我試圖

sex = table(mydata$SEX) 
pie(sex) 

和我得到的錯誤

「錯誤在seq.int(X [I]中,x [I + 1],length.out = N): 「length.out」 必須是一個非負的數」

1 =女性和0 =男在數據中,但關於我可以在以後擔心。

+0

上線無信息的獲取這些從標題到文件?嘗試http://www.statmethods.net/graphs/pie.html(我的第一個命中時,谷歌搜索「餅圖R」) – mnel

+0

我明白,如果你手動添加信息英寸但我從一個.txt文件導入數據。它是一堆行,每列的頂部都有變量名稱,下面的數據與它對應。我想如果我做了像餡餅(南)這樣的東西,它會創建一個非常基本的無標籤圖。但是,這只是說「對象'南'沒有找到」 – pfinferno

+0

你有什麼是一個data.frame,看看鏈接中的最後一個例子。 – mnel

回答

1

現在的數據不能簡單地用read.table("proj1.txt", header=TRUE, sep="\t")來讀取。

目前我的猜測是,sex是一個空表

print(sex) 
## < table of extent 0 > 

從網頁

mydata <- read.table('http://lib.stat.cmu.edu/datasets/CPS_85_Wages', 
        sep='\t', header=FALSE,skip=27,nrows=562-28) 

直讀,但這不包括列名。你可以用一點清潔

myheader <- readLines('http://lib.stat.cmu.edu/datasets/CPS_85_Wages',n=26) 
# get the lines that correspond with the definitions. 
vars <- tail(myheader,length(mydata)) 
# set names with scrubbed text 
names(mydata) <- gsub(':.+|\t','',vars) 
# now 
sex = table(mydata$SEX) 
pie(sex, labels = c('Male','Female')) 

enter image description here

+0

感謝您的幫助!一個問題,我不明白這是什麼意思: vars < - tail(myheader,length(mydata)) #設置名稱與清理文本 names(mydata)< - gsub(':。+ | \ t' ,'',vars) – pfinferno

+2

Comne on,mnel已經爲你做了很多努力。如果您不明白代碼片段,則將該代碼行分解爲其組件,然後遍歷代碼中的每個函數並查找它們。尾巴,長度,gsub。你在這裏學習,不要被溺愛。 – SlowLearner