2016-09-13 49 views
0

因此,我試圖製作一個條形圖,但是在獲取每個變量的頻率時遇到了問題。在我的csv文件中,我有一列(稱爲「Clade」),其中每個單元格都有一個變量(注意每個變量可以出現在多個單元格中)。還有另一列稱爲「總計」,其中每個單元格是與第一列中的單元格對應的數值(兩個單元格在同一行中)。我想要做的是計算「分組」列中每個變量的頻率,同時考慮「總計」列中的數值。例如,「Clade」中的一個變量出現3次,但與三者中的一個相關的數值是23.任何幫助都非常感謝!如何獲取變量的頻率

+2

歡迎來到StackOverflow!請閱讀關於[如何提出一個好問題](http://stackoverflow.com/help/how-to-ask)以及如何給出[可重現的示例]的信息(http://stackoverflow.com/questions/ 5963269 /如何對化妝一個偉大-R-重複性,例如/ 5963610)。這會讓其他人更容易幫助你。 – Jaap

+1

對於靈感,請參閱:[*是否有一個聚合FUN選項來計算事件?*](http://stackoverflow.com/questions/9809166/is-there-an-aggregate-fun-option-to-count-occurrences ) – Jaap

回答

0

如果我的問題是正確的,您希望看到變量中的值的頻率,該變量是Clade列中的值以及單元中此類變量的每個值。

我會做重複的例子,所以你可以調整到您的特定需求:

library(dplyr) 

set.seed(1) 

values <- c('one', 'two', 'three', 'four', 'five') 
df <- data.frame(clade =sample(values, size = 1000, replace = TRUE), 
       total = rnorm(1000, mean = 0, sd = 1)) 

# find create a column with the frequency values for each clade variable value 
df <- df %>% 
    group_by(clade) %>% 
    mutate(freq = n()/nrow(.)) 

# plot the frequencies 
barplot(prop.table(table(df$clade))) 

這段代碼做的是首先要複製你指的是數據,第二我創建了一個變量在您的數據框中稱爲freq,它顯示了數據中Clade變量值的相對頻率。最後,我繪製了Clade變量值的相對頻率。