У меня есть набор наблюдений (гамма и время), записанных с интервалом в 1 секунду. Я хочу переделать эти данные через 0,1 секунды. Данные выглядят следующим образом:Эффективность рекомплектования данных в R (линейная экстраполяция)
38804.96 12.59222222
38805.12 12.5925
38805.38 12.59277778
38805.4 12.59305556
38805.27 12.59333333
38805.36 12.59361111
38805.33 12.59388889
38805.23 12.59416667
38805.3 12.59444444
38805.18 12.59472222
38805.21 12.595
38805.28 12.59527778
я придумал следующий код для повторной выборки (линейно экстраполировать) гамма, но это очень много времени, так как мой набор данных имеет более чем 30000 наблюдений.
#Resampling la diurnal drift
j <- (0:9)
A <- 0
VectorT <- numeric()
VectorG <- numeric()
for (I in 1:nrow(R20140811)){
# Calculate the increment of time
Rate <- (R20140811[I+1,2]- R20140811[I,2])/10
Time <- R20140811[I,2]
# Calculate the increment of gamma
nT <- (R20140811[I+1,1] - R20140811[I,1])/10
Gamma <- R20140811[I,1]
print(I)
for (j in 0:9){
A <- A + 1
VectorT[A] <- Time + (j*Rate)
VectorG[A] <- Gamma + (j*nT)
R20140811[A,3] <- VectorG[A]
R20140811[A,4] <- VectorT[A]
}
}
Знаете ли вы более эффективный способ сделать это?
Я был тратить много времени, как я написал это ... твой настолько эффективный. Большое спасибо за ваш ответ. – napogeof
Добро пожаловать. И помните, что «upvote» ответ или вопрос - это нормальный способ сказать спасибо на SO :-) – cmbarbu