计算R

时间:2017-02-14 12:42:49

标签: r dataframe mean categorical-data

我是R的新手并且真的试图绕过一切(甚至参加在线课程 - 到目前为止根本没有帮助)。

我开始使用的是一个包含97个与遵守法规相关的变量的大型数据框架。

我根据不同的地理位置创建了多个数据框(可能有一种更简单的方法)。

在每个数据框中,我有7个变量,我想找到“是”和“否”响应的平均值。

我第一次尝试:

    summary(urban$vio_bag)
   Length     Class      Mode 
      398 character character

然而,除了我有398个回复之外,这只是告诉我没有用。

所以我把它放在一张桌子里:

urbanbag<-table(urban$vio_bag)

这至少为我提供了“是”和“否”回复的数量

 Var1  Freq
1 No   365
2 Yes  30

然后我转换为data.frame:

urbanbag = as.data.frame(urbanbag)

然后查看:

 summary(urbanbag)

     Var1        Freq      
 No :1   Min.   : 30.0  
 Yes:1   1st Qu.:113.8  
         Median :197.5  
         Mean   :197.5  
         3rd Qu.:281.2  
         Max.   :365.0  

输出仍然没有帮助..实际上更无用。 我不在R中构建这些矩阵。它是从excel导入的表。

我只是因为花了几天时间试图弄清楚看起来如此基本和谷歌搜索帮助而无法解决的问题而感到非常失落和沮丧。

有没有办法真正做到这一点?

3 个答案:

答案 0 :(得分:1)

我们可以使用prop.table来获得比例

v1 <- prop.table(table(urban$vio_bag))

然后使用barplot绘制

barplot(v1)

答案 1 :(得分:1)

尝试在n()内使用dplyr的sumarisse()(性能计数)

库(dplyr)

data %>% group_by(yes_no_column) %>% summarise(my_counts = n())

这将为您提供所需的计数。根据需要调整group_by()变量-可以同时使用多个变量进行分组。就像n()一样,可以将meansd之类的函数传递给summarise。如果要在每个计算的指标之外创建一列,请使用mutate()

奥斯卡。

答案 2 :(得分:1)

prop.table是执行此操作的有用方法。您也可以使用均值解决此问题:

mean(urban$vio_bag == "Yes")    
mean(urban$vio_bag == "No")