2016-09-13 86 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变量值的相对频率。