Синтаксис ANSI join определенно более переносимый.
Я собираюсь обновить Microsoft SQL Server, и я бы также упомянул, что синтаксис = * и * = для внешних соединений в SQL Server не поддерживается (без режима совместимости) для SQL Server 2005 года и позже.
С помощью data.table
вы можете:
library(data.table)
setDT(dt)[,scale(fc),by=rep(1:nn,each=ceiling(KK/nn),length.out=KK)]
Здесь KK
- 130 209, а nn
- 12. Воспроизводимые данные:
set.seed(100)
KK<-130209L; nn<-12L
dt<-data.frame(mLow1=rnorm(KK),mHigh1=rnorm(KK),
mLow2=rnorm(KK),mHigh2=rnorm(KK),
meanLow=rnorm(KK),meanHigh=rnorm(KK),
fc=rnorm(KK),mean=rnorm(KK))
So нет необходимости разбивать данные и рекомбинировать.
Если вы хотите добавить это в кадр данных, а не просто извлечь его, вы можете использовать оператор :=
для назначения по ссылке:
setDT(dt)[,fc_scaled:=scale(fc)...]
Я не уверен, что структура dt
имеет большое значение (если вы не используете какие-либо внутренние значения для разделения). Помогает ли это?
spl.dt <- split( dt , cut(1:nrow(dt), 12) )
lapply( spl.dt, my_fun)