我可以基于r中的两个其他条件创建一个变量的多个类别吗?

我可以基于r中的两个其他条件创建一个变量的多个类别吗?,r,select,statistics,bigdata,R,Select,Statistics,Bigdata,我在一个大数据框架中进行统计分析,r中有48000.000多行。以下是数据示例: structure(list(herd = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3), cows = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 1

我在一个大数据框架中进行统计分析,r中有48000.000多行。以下是数据示例:

structure(list(herd = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3), cows = c(1, 2, 
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1, 2, 3, 4, 
5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1, 2, 3, 4, 5, 6, 
7, 8, 9, 10, 11, 12, 13, 14, 15, 16), `date` = c("11/03/2013", 
"12/03/2013", "13/03/2013", "14/03/2013", "15/03/2013", "16/03/2013", 
"13/05/2012", "14/05/2012", "15/05/2012", "16/05/2012", "17/05/2012", 
"18/05/2012", "10/07/2016", "11/07/2016", "12/07/2016", "13/07/2016", 
"11/03/2013", "12/03/2013", "13/03/2013", "14/03/2013", "15/03/2013", 
"16/03/2013", "13/05/2012", "14/05/2012", "15/05/2012", "16/05/2012", 
"17/05/2012", "18/05/2012", "10/07/2016", "11/07/2016", "12/07/2016", 
"13/07/2016", "11/03/2013", "12/03/2013", "13/03/2013", "14/03/2013", 
"15/03/2013", "16/03/2013", "13/05/2012", "14/05/2012", "15/05/2012", 
"16/05/2012", "17/05/2012", "18/05/2012", "10/07/2016", "11/07/2016", 
"12/07/2016", "13/07/2016"), glicose = c(240666, 23457789, 45688688, 
679, 76564, 6574553, 78654, 546432, 76455643, 6876, 7645432, 
876875, 98654, 453437, 98676, 9887554, 76543, 9775643, 986545, 
240666, 23457789, 45688688, 679, 76564, 6574553, 78654, 546432, 
76455643, 6876, 7645432, 876875, 98654, 453437, 98676, 9887554, 
76543, 9775643, 986545, 240666, 23457789, 45688688, 679, 76564, 
6574553, 78654, 546432, 76455643, 6876)), class = c("tbl_df", 
"tbl", "data.frame"), row.names = c(NA, -48L))
我需要根据牛群和日期确定有多少头牛属于以下类型的胶质酶:

<=100000
100000 and <=150000
150000 and <=200000
200000 and <=250000
250000 and <=400000
>400000 
事实上,我不知道该怎么做。请帮忙

我希望根据以下表格中的每个日期获得每个牛群中每个类别的奶牛数量:

调用您的数据df


我还加入了一个到Date类的转换,这可能是一个好主意。

使用cut添加一个列,其中包含您想要的分组,100000到150000,150000到200000,等等。然后,您可以按从众、日期和新列对_进行分组,并获得带有…%>%的计数这是不同的卡米尔,因为我有两个条件要申请。哪两个条件?创建一个包含cut的bined变量,然后按日期分组,这样bind就可以解决您建议的问题,只需在列中计算。我想根据牛群进行计数,并确定一种情况和另一种情况下的不同间隔。很抱歉,我不知道如何创建一个包含cut的bind变量,然后按日期和那个bin分组,你能给我看一下吗?非常感谢!它奏效了,但是我得到了这样的警告:“1:因子GLICSOSEY组包含隐式NA,考虑使用FoCoS::FCTA ExpReCuxINA 2:因子GLICSOSEY组包含隐式NA,考虑使用FoCoS::FCTXEXPRECTIONNNA‘’另一个问题,有没有办法在这样的表格中创建一个data.frame结果:herd glicose_group 2012-05-13 2012-05-14 1对不起,我无法保留我在上一次发言中所指的表格格式。我将把它列入问题。如果这是不允许的,我很抱歉。另一个疑问,我怎么能保持像这样的数字100000,1500000,200000。。。结果不是这样的1e+05吗?谢谢您可以使用cut的labels参数指定所需的标签。有关详细信息,请参见“帮助”页?剪切。要将日期转换为列,请查看。一个选项是在我的代码末尾添加…%>%重塑2::dcasherd+glicose_group~date,value.var=n非常感谢你,Gregor!你帮了我很多!
ht <- df %>% group_by(herd, date) %>%
         filter(glicose < 100000)
df %>%
  mutate(glicose_group = cut(glicose, breaks = c(0, seq(1e5, 2.5e5, by = 0.5e5), 4e5, Inf)),
         date = as.Date(date, format = "%d/%m/%Y")) %>%
  group_by(herd, date, glicose_group) %>%
   count
# # A tibble: 48 x 4
# # Groups:   herd, date, glicose_group [48]
#     herd date       glicose_group       n
#    <dbl> <date>     <fct>           <int>
#  1     1 2012-05-13 (0,1e+05]           1
#  2     1 2012-05-14 (4e+05,Inf]         1
#  3     1 2012-05-15 (4e+05,Inf]         1
#  4     1 2012-05-16 (0,1e+05]           1
#  5     1 2012-05-17 (4e+05,Inf]         1
#  6     1 2012-05-18 (4e+05,Inf]         1
#  7     1 2013-03-11 (2e+05,2.5e+05]     1
#  8     1 2013-03-12 (4e+05,Inf]         1
#  9     1 2013-03-13 (4e+05,Inf]         1
# 10     1 2013-03-14 (0,1e+05]           1
# # ... with 38 more rows