在R中的ddply中获取数据帧中子组列的最大值和最小值
get the maximum and minimum values of a sub group of columns in a dataframe in ddply in R
我正在尝试使用 plyr 包中的 ddply 函数 select 数据框中一组变量的最大值和最小值。然而,它似乎不起作用。
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 包中的 ddply 函数 select 数据框中一组变量的最大值和最小值。然而,它似乎不起作用。
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