R-如何一次操作数据集的所有子集

时间:2018-09-19 10:05:08

标签: r dataframe split

是否有可能操纵已经分为多个子集的数据集的列?问题在于,如果将代码应用于其他功能,则看起来毫无用处。

> df <- split(d08,d08$kraj_zn)
> df$BA$min <- min(df$BA$EQ_INC20)
> df$TT$min <- min(df$TT$EQ_INC20)
> df$TN$min <- min(df$TN$EQ_INC20)
> df$NR$min <- min(df$NR$EQ_INC20)
> df$BB$min <- min(df$BB$EQ_INC20)
> df$ZA$min <- min(df$ZA$EQ_INC20)
> df$KE$min <- min(df$KE$EQ_INC20)
> df$PO$min <- min(df$PO$EQ_INC20)

编辑:

我想做的是从某种程度上操纵df$min

 > . ROK . . . kraj_zn min
 > 1 2008 . . . BA -100
 > 101 2008 . . . TT -100
 > 201 2008 . . . TN -100
 > 301 2008 . . . NR -100
 > 401 2008 . . . BB -100

对此:

> . ROK . . . kraj_zn min
> 1 2008 . . . BA -399
> 101 2008 . . . TT -120
> 201 2008 . . . TN -1
> 301 2008 . . . NR -25
> 401 2008 . . . BB -67

因此df$min的值将代表基于df$kraj_zn的最小值。

2 个答案:

答案 0 :(得分:2)

您可以按以下方式使用lapplytransform

lapply(df, transform, min=min(Q_INC20))

答案 1 :(得分:0)

dplyr 非常适合此类按组操作。您没有提供完全可复制的示例,但是与您的代码等效的示例可能是:

library(dplyr)

df <- d08 %>%
  group_by(kraj_zn) %>%
  summarize(min = min(EQ_INC20))