R: сократить набор данных по частям [дубликат]

Синтаксис ANSI join определенно более переносимый.

Я собираюсь обновить Microsoft SQL Server, и я бы также упомянул, что синтаксис = * и * = для внешних соединений в SQL Server не поддерживается (без режима совместимости) для SQL Server 2005 года и позже.

6
задан Ben Bolker 6 August 2015 в 18:42
поделиться

2 ответа

С помощью 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)...]
4
ответ дан Ben Bolker 25 August 2018 в 00:46
поделиться

Я не уверен, что структура dt имеет большое значение (если вы не используете какие-либо внутренние значения для разделения). Помогает ли это?

 spl.dt <- split( dt , cut(1:nrow(dt), 12) )

 lapply( spl.dt, my_fun) 
5
ответ дан 42- 25 August 2018 в 00:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: