R - Как манипулировать всеми подмножествами набора данных одновременно - PullRequest
0 голосов
/ 19 сентября 2018

возможно ли манипулировать столбцом набора данных, который уже разбит на несколько подмножеств?Проблема в том, что код выглядит довольно бесполезным, если его применять к другим функциям.

> 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 голосов
/ 19 сентября 2018

dplyr отлично подходит для такого рода групповых операций.Вы не предоставляете полностью воспроизводимый пример, но эквивалент вашего кода, вероятно, будет:

library(dplyr)

df <- d08 %>%
  group_by(kraj_zn) %>%
  summarize(min = min(EQ_INC20))
0 голосов
/ 19 сентября 2018

Вы можете использовать lapply и transform следующим образом:

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