2015-04-30 50 views
0

我在R中使用了Dative數據框,並且我試圖僅針對Modality繪製LengthOfRecipient =='nonpronomial'。我收集了所有LengthOfRecipient ==「nonpronomial」:R - 相互映射特定變量

library('languageR') 
lor.np = dative[dative$PronomOfRec == 'nonpronominal',]$LengthOfRecipient 

我已經嘗試築巢這個子集功能和應用的載體,但我不能想出一個辦法來,然後訪問只對項目的情態列lor.np和其存儲在mod.np,這樣我就可以繪製,並分析數據:

boxplot(lor.np, mod.np) 

我很新的R和語法極爲混亂。任何幫助將非常感激。提前致謝!

+0

您正在使用哪些數據集?從包裹或你的個人資料中是否是'dative'? 'boxplot(LengthOfRecipient〜Modality,droplevels(dative [dative $ PronomOfRec =='nonpronomial',]))'work – rawr

+0

它來自LanguageR包。這似乎工作,所以謝謝你!除了給定的參數之外,droplevels()是否除去了所有內容(所以在這種情況下,除了在哪裏除了PronomOfRec =='nonpronomial'之外的所有東西? – luisamaria

+0

你不需要'droplevels'。當你創建子集數據框時,即使沒有關於這個級別的觀察,因素級別仍然會存在,所以當你使用像boxplot這樣的函數時,它會爲未使用的級別創建一個空間,但不會繪製任何圖形,我只是假設你可能有一些未使用的子集化後的水平 – rawr

回答

0

可能更容易選擇你想在一次列,然後使用formula功能在boxplot而不是使用向量:

library('languageR') 
lor.np <- dative[dative$PronomOfRec == 'nonpronominal', 
       c('LengthOfRecipient','Modality')] 

head(lor.np) 
# LengthOfRecipient Modality 
# 2     2 written 
# 3     1 written 
# 5     2 written 
# 6     2 written 
# 7     2 written 
# 11     2 written 

## but you don't even need to select the columns: 
lor.np <- dative[dative$PronomOfRec == 'nonpronominal', ] 

boxplot(LengthOfRecipient ~ Modality, lor.np) 

enter image description here

看數據,你不後不需要droplevels,但這裏有一個例子,它可能有用:

dat1 <- dative[dative$Modality == 'written', ] 
boxplot(LengthOfRecipient ~ Modality, dat1) 

enter image description here