在R中生成条件摘要统计信息?

在R中生成条件摘要统计信息?,r,dataframe,R,Dataframe,对于这个相当简单的问题,我深表歉意,因为尽管我有一些计量经济学/回归分析的R方面的经验,但我还是设法跳过了学习如何在R中创建基本汇总统计数据的过程。我如何生成一个输出,1)计算特定的观察值的数量 对于此数据帧,如何计算特定列中每种类型的不同观察数(即:列“侧”中有多少个Ls和Rs)?如果“Side”列等于“L”(例如,当“Side”等于“L”时,绿色、红色或蓝色占时间的百分比是多少),我如何从中细分“State”列的计数和百分比 Side State Color Type

对于这个相当简单的问题,我深表歉意,因为尽管我有一些计量经济学/回归分析的R方面的经验,但我还是设法跳过了学习如何在R中创建基本汇总统计数据的过程。我如何生成一个输出,1)计算特定的观察值的数量

对于此数据帧,如何计算特定列中每种类型的不同观察数(即:列“侧”中有多少个Ls和Rs)?如果“Side”列等于“L”(例如,当“Side”等于“L”时,绿色、红色或蓝色占时间的百分比是多少),我如何从中细分“State”列的计数和百分比

Side   State    Color    Type            
L       O       Green     B
R       C       Red       Q
R       O       Red       C
R       O       Blue      L
L       C       Green     B
L       C       Yellow    C
以下是我正在寻找的输出类型:

Side  Count    %
L     13      38%
R     21      68%
对于侧面=L

Color  Count    %
Green  4        31
Red    7        54
Blue   1        8
Yellow 1        8
对于侧面=R

Color  Count    %
Green  11       52
Red    4        19
Blue   2        10
Yellow 4        19

您可以使用
count
计算频率,使用
prop.table
计算比率

对于每个

library(dplyr)

df %>%
  count(Side, name = 'Count') %>%
  mutate(Perc = prop.table(Count) * 100)
df %>%
  count(Side, Color, name = 'Count') %>%
  group_by(Side) %>%
  mutate(Perc = prop.table(Count) * 100)
对于每个
侧的
颜色

library(dplyr)

df %>%
  count(Side, name = 'Count') %>%
  mutate(Perc = prop.table(Count) * 100)
df %>%
  count(Side, Color, name = 'Count') %>%
  group_by(Side) %>%
  mutate(Perc = prop.table(Count) * 100)

您可以使用
count
计算频率,使用
prop.table
计算比率

对于每个

library(dplyr)

df %>%
  count(Side, name = 'Count') %>%
  mutate(Perc = prop.table(Count) * 100)
df %>%
  count(Side, Color, name = 'Count') %>%
  group_by(Side) %>%
  mutate(Perc = prop.table(Count) * 100)
对于每个
侧的
颜色

library(dplyr)

df %>%
  count(Side, name = 'Count') %>%
  mutate(Perc = prop.table(Count) * 100)
df %>%
  count(Side, Color, name = 'Count') %>%
  group_by(Side) %>%
  mutate(Perc = prop.table(Count) * 100)

我们可以使用
summary
groupby

library(dplyr)
df %>%
    group_by(Side) %>% 
    summarise(Count  = n(), .groups = 'drop') %>% 
    mutate(Perc = 100 * Count/sum(Count))
# A tibble: 2 x 3
#  Side  Count  Perc
#  <chr> <int> <dbl>
#1 L         3    50
#2 R         3    50
库(dplyr)
df%>%
分组(并排)%>%
摘要(计数=n(),.groups='drop')%>%
变异(Perc=100*计数/总和(计数))
#一个tibble:2x3
#侧面计数Perc
#    
#1升3 50
#2 R 3 50

第二种情况

df %>% 
   group_by(Side, Color) %>%
   summarise(Count  = n(), .groups = 'drop_last') %>% 
   mutate(Perc = 100 * Count/sum(Count))
# A tibble: 4 x 4
# Groups:   Side [2]
#  Side  Color  Count  Perc
#  <chr> <chr>  <int> <dbl>
#1 L     Green      2  66.7
#2 L     Yellow     1  33.3
#3 R     Blue       1  33.3
#4 R     Red        2  66.7
df%>%
按(侧面、颜色)分组%>%
总结(计数=n(),.groups='drop_last')%>%
变异(Perc=100*计数/总和(计数))
#一个tibble:4x4
#小组:方(二)
#侧色计数Perc
#      
#1升绿色2 66.7
#2升黄色1 33.3
#3R蓝色133.3
#4R红色266.7
数据
df我们可以使用
summary
groupby

library(dplyr)
df %>%
    group_by(Side) %>% 
    summarise(Count  = n(), .groups = 'drop') %>% 
    mutate(Perc = 100 * Count/sum(Count))
# A tibble: 2 x 3
#  Side  Count  Perc
#  <chr> <int> <dbl>
#1 L         3    50
#2 R         3    50
库(dplyr)
df%>%
分组(并排)%>%
摘要(计数=n(),.groups='drop')%>%
变异(Perc=100*计数/总和(计数))
#一个tibble:2x3
#侧面计数Perc
#    
#1升3 50
#2 R 3 50

第二种情况

df %>% 
   group_by(Side, Color) %>%
   summarise(Count  = n(), .groups = 'drop_last') %>% 
   mutate(Perc = 100 * Count/sum(Count))
# A tibble: 4 x 4
# Groups:   Side [2]
#  Side  Color  Count  Perc
#  <chr> <chr>  <int> <dbl>
#1 L     Green      2  66.7
#2 L     Yellow     1  33.3
#3 R     Blue       1  33.3
#4 R     Red        2  66.7
df%>%
按(侧面、颜色)分组%>%
总结(计数=n(),.groups='drop_last')%>%
变异(Perc=100*计数/总和(计数))
#一个tibble:4x4
#小组:方(二)
#侧色计数Perc
#      
#1升绿色2 66.7
#2升黄色1 33.3
#3R蓝色133.3
#4R红色266.7
数据
df Ronak,一如既往,你真是太棒了。如果我想让分析更进一步——比如:我怎么能像你在“Side”中那样显示颜色的汇总统计数据呢=L和“State”=0。换句话说,如果我添加另一个条件,我怎么能显示完全相同的东西。@rogues77在这种情况下,你可以添加
groupu by
Color
而不是
groupu by
Side
。Ronak,你总是很了不起。如果我想让分析更深入一步呢?例如:我如何显示摘要当“Side”=L和“State”=0时的颜色统计。换句话说,如果我添加另一个条件,如何显示完全相同的内容。@rogues77在这种情况下,您可以添加
groupby
color
而不是
groupby
Side