Need Q2using R Extend your function so that it takes a third
Need Q2.using R.
Extend your function so that it takes a third parameter, which allows the caller to use a function other than mean() when calculating the lowerTrim. Call this argument sumFunc and give it a default value so that it operates like the original lowerTrim function. Call this revised function lowerTrim2
Check your function with the following calls:
The return values should be 8 and the summary values of 1, 5.75 10.5, 10.5, 15.2, and 20.
Previous information as follows:
Q1. Write a function called lowerTrim that takes 2 arguments: x and trimBelow. This function takes the average of those values in x that are greater than the trimBelow. Make x a required argument and supply a default value for trimBelow of negative infinity.
First create some variable to be used for testing later.
Now test your function with the following
The return values should be: 3, 3, 2, and NaN, respectively
Solution
lowerTrim= function(x,trimBelow=neg_inf,sumFunc=mean)
 {
 temp=0
 a=as.list(args(lowerTrim))
 if (grepl(a[2],\"neg_inf\") & grepl(a[3],\"summary\"))
 {
   
 FUN <- match.fun(sumFunc);
 ans=FUN(x)
 }
 else if(grepl(a[2],\"neg_inf\") & !grepl(a[3],\"summary\"))
 {
 sum=sum(x)
 FUN <- match.fun(sumFunc);
 ans=FUN(sum)
 }
 else if(!grepl(a[2],\"neg_inf\") & grepl(a[3],\"summary\")){
 temp=a[1]:tail(x,1)
 sum=sum(temp)
 FUN <- match.fun(sumFunc)
 ans=FUN(x)
 }
 else if(!grepl(a[2],\"neg_inf\") & !grepl(a[3],\"summary\"))
 {
 temp=a[1]:tail(x,1)
 sum=sum(temp)
 FUN <- match.fun(sumFunc)
 ans=FUN(temp)
 }
 return(a[3]);
}
 x=lowerTrim(1:20,trimBelow=5,sumFunc=summary)
 x

