1

Reproducible Data As shown Below:

 library(pracma);library(zoo)
library(dplyr);library(tidyverse)
Tag<- c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
        3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5,5, 5,
        6, 6, 6, 6, 6, 6, 6, 6, 6, 6)
Temp<- c(43, 44, 45, 41, 43, 38, 40, 41, 39, 37, 37, 39, 45, 42, 41, 43, 44, 39,38,
         37, 43, 44, 45, 41, 43, 38, 40, 41, 39, 37, 37, 39, 45, 42, 41, 43, 44, 
         39, 38, 37, 43, 44, 45, 41, 43, 38, 40, 41, 39, 37, 37, 39, 45, 42, 41,43,
         44, 39, 38, 37)
dfr=data.frame(Tag=Tag,Temp=Temp)
# Function for Applying Moving Average for x column
lag_apply <- function(x, n, callback){
  k = length(x);
  result = rep(0, k);
  for(i in 1 : (k - n + 1)){
    result[i] <- callback(x[i :  (i + n -1)]);
  }    
  return(result);
}
#Moving Average Calculation
dfr$MAvg_Temp<-ave(dfr$Tag,  
                      FUN= function(x) lag_apply(dfr$Temp, 5, function(x){mean(x)}) )
#Grouping by Tag and performing peak function over MAvg_Temp
result <- dfr %>% 
  split(.$Tag) %>% 
  map(~findpeaks(.$MAvg_Temp, nups = 1, ndowns = 0, zero = "+", peakpat = NULL, minpeakheight = 33, minpeakdistance = 4, threshold = 0.42, npeaks = 11, sortstr = FALSE)) %>% 
  map_df(~data_frame(Temp = parse_number(.x[,1]), 
                     Peak_Mid = parse_number(.x[,2]),
                     Peak_start = parse_number(.x[,3]),
                     Peak_End= parse_number(.x[,4])),
         .id = 'Tag') %>% 
  arrange(Tag, Peak_Mid) %>% 
  group_by(Tag) %>% 
  mutate(Trend= (lead(Temp)-Temp)/(lead(Peak_Mid)-Peak_Mid))  

Data Description :
Column 1 : Tag (Grouped data).
Column 2 : Temperature data data.
Column 3 : Moving Average of Column 2.

Here when i compute the findpeak for Column 2(Temp) there is no error . But when i pass the Moving Average`` in thefindpeak functionI am getting error of **Missing Value TRUE/FALSE as shown below**.
[Error Message][1] From my understanding error says
Missing value where TRUE/FALSE.But when i check the column forNAi did'nt find anyNA` in any of the column in the data frame i am clueless about the error .Kindly do guide me on this !!.

After running Above code i getting below error.
Error in if (npeaks > 0 && npeaks < nrow(X)) { : missing value where TRUE/FALSE needed

Harvey
  • 245
  • 2
  • 9

0 Answers0