Need Q2.using R. Extend your function so that it takes a third parameter, which
ID: 3792300 • Letter: N
Question
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
Explanation / Answer
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
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.