2016-08-05 48 views
0

長時間潛伏者,第一次海報。使用方法錯誤(「select_」)

我在介紹性的R課程中,我正在嘗試創建糖尿病「diabage2」和他們的胰島素使用「胰島素」(是/否/ NA)的診斷年齡的直方圖和總結。數據集是brfss2013。

我第一次嘗試​​

insulin  MEAN  n 
    <chr> <dbl> <int> 
1  Yes 51.48694 491775 

這看起來不錯,但我知道那是不是意味着和n報告的樣本均值和n,而不是樣品選定部分(我有這個問題在我的項目的另一部分 - 不知道爲什麼它不工作,我可以驗證答案是不正確的。)

當我試圖使用子集(),並選擇只有符合我的條件,所以我可以輕鬆地總結並且製作直方圖(即,胰島素=是和胰島素=否的一組數據)

wInsulin <- subset(brfss2013, insulin = "Yes", select = c(diabage2)) 
woInsulin <- subset(brfss2013, insulin = "No", select = c(diabage2)) 

這些看起來是一樣的,即使它們不應該包含任何相同的觀察結果,因爲它們是互斥的。

當我試圖使用select()修剪下來我用330個變量三集,我遇到了另一個問題:

InsulinData <- select(brfss2013$insulin, brfss2013$diabage, brfss2013$sex, brfss2013$X_state) 

給我的錯誤

Error in UseMethod("select_") : 
    no applicable method for 'select_' applied to an object of class "factor" 

我不知道該怎麼做。

我覺得我錯過了一些非常基礎的東西,但是我缺乏經驗意味着我沒有基礎來理解很多解決其他人問題的方法,迄今爲止的課程已經覆蓋了更多的統計理論與R打交道的實際細節。我非常感謝我能得到的任何指導。

+0

'brfss2013'不包含dplyr軟件包,因此您可能希望將其更明確地重現。通常,可以編寫抓取或加載數據集的代碼,如'library(whatever)'。 – Frank

+0

我在這裏看到一些錯誤,比如'insulin =「Yes」'而不是'==';在dplyr鏈中使用'$'指代cols;當dplyr成語是「過濾器」(或某個類似的詞)時使用'subset'。我建議您從頂部瀏覽R介紹文檔,並通過其中的示例進行瀏覽:https://cran.r-project.org/doc/manuals/r-release/R-intro.html – Frank

回答

1

你幾乎擁有這樣的:

InsulinData <- select(brfss2013$insulin, 
         brfss2013$diabage, 
         brfss2013$sex, 
         brfss2013$X_state) 

應該是:

InsulinData <- select(brfss2013, insulin, diabage, sex, X_state) 

隨着dplyr你只需要指定一次data.frame。 select以爲你試圖從變量brfss2013$insulin中選擇列,你不能。

而且,你的第一套intstructions是有點混亂:

group_by(insulin = "yes") 

group_by(insulin),你通過filter(insulin == "yes")

可能需要更多的東西一樣過濾行:

brfss2013 %>% 
    group_by(insulin) %>% 
    summarise(MEAN = mean(diabage2, na.rm = TRUE), n = n())