获取DDR中ddply中数据帧中列的子组的最大值和最小值

获取DDR中ddply中数据帧中列的子组的最大值和最小值,r,plyr,R,Plyr,我试图使用plyr包中的ddply函数从数据帧中选择一组变量的最大值和最小值。然而,它似乎不起作用 a1 = c(1, 2, 3, 4, 5) a2 = c(6, 7, 8, 9, 10) a3 = c(11, 12, 13, 14, 15) f=letters[1:5] d= data.frame(f,a1, a2, a3) t=ddply(d,.(f), summarize, minima=apply(f[,c(1:3)], 1, min), maxima=apply(f[

我试图使用plyr包中的ddply函数从数据帧中选择一组变量的最大值和最小值。然而,它似乎不起作用

a1 = c(1, 2, 3, 4, 5)
a2 = c(6, 7, 8, 9, 10)
a3 = c(11, 12, 13, 14, 15)
f=letters[1:5]
d= data.frame(f,a1, a2, a3)

t=ddply(d,.(f), summarize,
    minima=apply(f[,c(1:3)], 1, min),
    maxima=apply(f[,c(1:3)], 1, min))

谢谢

这种dplyr方法产生分钟和最大值。您可能需要重塑生成的数据帧,具体取决于您使用它的目的

library(dplyr)


# Create dataframe
a1 = c(1, 2, 3, 4, 5)
a2 = c(6, 7, 8, 9, 10)
a3 = c(11, 12, 13, 14, 15)
f=letters[1:5]
d= data.frame(f,a1, a2, a3)

# Get min and max value for a1,a2,a3
d %>% group_by(f) %>%  summarise_at(vars(a1,a2,a3),funs(min = min(.),max = max(.)) )
#> # A tibble: 5 × 7
#>        f a1_min a2_min a3_min a1_max a2_max a3_max
#>   <fctr>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
#> 1      a      1      6     11      1      6     11
#> 2      b      2      7     12      2      7     12
#> 3      c      3      8     13      3      8     13
#> 4      d      4      9     14      4      9     14
#> 5      e      5     10     15      5     10     15

你能分享你的预期产出吗?是否有使用plyr的具体原因?我的意思是,你几乎可以用dplyr做任何更容易理解的事情;d%>%gathervar,val,-f%>%group_byf%>%summarsea_max=maxval,a_min=minval?如果要获取每行的最小值和最大值,只需执行do.callpmin,d[-1]和do.callpmax,d[-1]即可。谢谢,您可能不需要分组。在计算最大值和最小值之前,我想使用因子f对df进行分区。这就是我使用plyr的原因,因为我更习惯于该软件包。谢谢,我没有看到因子f使用它的级别对df的分区进行索引,就像我在我的示例中所做的那样。抱歉,我一定没有完全理解这个问题。我编辑了f组的答案。