You would make it much easier for R-help readers to solve your problem if 
you provided a small example data set with your code, so that we could 
reproduce your results and troubleshoot the issues.

Jean


Naidraug <white....@wright.edu> wrote on 08/05/2012 09:08:25 AM:
> 
> I've looked everywhere and tinkered for three days now, so I figure 
asking
> might be good. 
> So here's a general rundown of what I am trying to get my code to do I 
am
> giving you the whole rundown because I need a solution that retain 
certain
> ways of doing things because they give me the information i need. 
> I want to examine the effect of increasing my sampling interval on my 
data.
> Example: what if instead of sampling every hour I sampled every two, oh
> yeah, how about every three?.. etc ad nausea.  How I want to do this is 
to
> take the data I have now, add an index  to it, that contains counters. 
Those
> counters will look something like 1,2,1,2,.. for the first one,
> 1,2,3,1,2,3.. for the next one. I have a lot of them, like say a 
thousand...
> Then for each column in the index my loops should start in the first 
column,
> run only the ones, store that, then run the twos, and store that in the 
same
> column of output in a different row. Then move to the next column run 
the
> ones, store in the next column of output, run the twos, store in the 
next
> row of that column, run the threes, etc on out until there is no more. I
> want to use this index for a number of reasons. The first is that after 
this
> I will be going back through and using a different method for 
sub-sampling
> but keeping all else the same. So all I have to do there is change the 
way I
> generate the index. The second is that it allows me to run  many 
subsamples
> and see their range.  So the code I have made, generates my index, and 
does
> the heavy lifting all correctly, as well as my averages, and quartiles, 
but
> a look at the head () of my key output (IntervalBetas)  shows that 
something
> has gone a miss. You have to look close to catch it.  The values 
generated
> for each row of output are identical, this should not be the case, as 
row
> one of the first output column should be generated from all values 
indexed
> by a one in the first column, whereas in column two there are different
> values indexed by the number one. I've checked about everything I can 
think
> of, done print() on my loop sequence things (those little i and j) and
> wiggled about everything. I am flummoxed. I think the bit that is 
messing up
> is in here :
> #Here is the loop for betas from sampling interval increase
>  c <- WHOLESIZE[2]-1
>  for (i in 1:c)
>  {
>  x <- length(unique(index[,i]))
> 
>  for (j in 1:x) 
>  {
> 
>  data <- WHOLE [WHOLE[,x]==j,1]
> 
> But also here is the whole code in case I am wrong that that is the 
problem
> area: 
> 
> #loop for making index
> 
> 
>  #clean dataset of empty cells
>  dataset <- na.omit (datasetORIGINAL)
>  #how messed up was the data?
>  holeyDATA <- datasetORIGINAL - dataset
> 
>  D <- dim(dataset)
> 
> #what is the smallest sample? 
> tinysample <- 100 
> 
> 
> 
> 
> #how long is the dataset?
>  datalength <- length (dataset)
> 
> 
>  #MD <- how many divisions
> 
> MD <- datalength/tinysample
> 
>  #clear things up for the index loop
>  WHOLE <- NULL
> index <- NULL
>  #do the index loop
> 
>  for (a in 1:MD)
>  {
>  index <- cbind (index, rep (1:a, length = D[1]))
>  }
> index <- subset(index, select = -c(1) )
> 
>  #merge dataset and index loop
>  WHOLE <- cbind (dataset, index)
> 
>  WHOLESIZE <- dim (WHOLE)
> 
> #Housekeeping before loops
> IntervalBetas <- NULL
> 
> 
> IntervalBetas <- c(NA,NA)
> IntervalBetas <- as.data.frame (IntervalBetas)
> IntervalLowerQ <- NULL
> IntervalUpperQ <- NULL
> IntervalMean <- NULL
> IntervalMedian <- NULL
> 
> #Here is the loop for betas from sampling interval increase
>  c <- WHOLESIZE[2]-1
>  for (i in 1:c)
>  {
>  x <- length(unique(index[,i]))
> 
>  for (j in 1:x) 
>  {
> 
>  data <- WHOLE [WHOLE[,x]==j,1]
> 
> 
> 
> 
>  #get power spectral density
> 
>  PSDPLOT <- spectrum (data, detrend = TRUE, plot = FALSE)
>  frequency <- PSDPLOT$freq
>  PSD <- PSDPLOT$spec
>  #log transform the power spectral density 
>  Logfrequency <- log(frequency)
>  LogPSD<- log(PSD)
>  #fit my line to the data 
>  Line <- lm (LogPSD ~ Logfrequency)
>  #store the slope of the line
>  Betas <- rbind (Betas, -coef(Line)[2])
> 
> #Get values on the curve shape
> BSkew <- skew (Betas)
> BMean <- mean (Betas)
> BMedian <- median (Betas)
> Q <- quantile (Betas) 
> 
> 
> #store curve shape values
> IntervalLowerQ <- rbind (IntervalLowerQ , Q[2]) 
> IntervalUpperQ <- rbind (IntervalUpperQ , Q[4]) 
> IntervalSkew <- rbind (IntervalSkew , BSkew) 
> IntervalMean <- rbind (IntervalMean , BMean)
> IntervalMedian <- rbind (IntervalMedian , BMedian)
> 
> #Store the Betas
> #This is a pain
> 
> 
> BetaSave <- Betas 
> no.r <- nrow(IntervalBetas)
> l.v <- length(BetaSave)
> difer <- no.r - l.v
> difers <- abs(difer)
> if (no.r < l.v){ 
> IntervalBetas <- rbind(IntervalBetas,rep(NA,difers))
> }
> else {
> (BetaSave <- rbind(BetaSave,rep(NA,difers)))
> }
> 
> IntervalBetas <- cbind (IntervalBetas, BetaSave)
> 
> 
>  }
> 
>  }
> 
> #That ends the loop within a loop for how sampling interval
> #changes beta
> head (IntervalBetas)

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to