Question

In: Computer Science

Use R programming Language Q1. (a)Write a function called lowerTrim that takes 2 arguments: x and...

Use R programming Language

Q1.

(a)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.

x = 1:5
y = letters
z = list(a = 1:5, b = 1:10)

Now test your function with the following

lowerTrim(x)
lowerTrim(-10:5, trimBelow = 0)
lowerTrim(-10:5, -2)
lowerTrim(x = -10:5, trimBelow = Inf)

The return values should be: 3, 3, 2, and NaN, respectively

(b). 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:

lowerTrim2(-10:20, trimBelow = -5, median)
lowerTrim2(-10:20, trimBelow = 0, sumFunc = summary)

The return values should be 8 and the summary values of 1, 5.75 10.5, 10.5, 15.2, and 20.

(c) Modify your function to take in any argument through the ... argument and pass these arguments. Call this new function lowerTrim3.

And test your code with

lowerTrim3(x, sumFunc = sd)
lowerTrim3(-10:20, trimBelow = 0, sumFunc = quantile,
           probs = 0.99)
lowerTrim3(-10:20, trimBelow = 0, trim = 0.1)

The results should be 1.58, 19.8, and 10.5.

Solutions

Expert Solution

a)

Program:

Sample output:

Code to copy:

#Returns mean of numbers that are greater than trimBelow

lowerTrim <- function(x,trimBelow=-Inf)

{

    #Create an empty vector

    vector = c()

    #Declare a varaible to keep track the index of vector

    j<-1

    #Interate through x

    for( ele in x)

    {

        #If the ele is greater than trimBelow,

        #Add it to vector

        if(ele > trimBelow)

        {

            vector[j] <- ele     

            #Increment the index by 1

            j<-j+1

        }

    }

    #Return the mean of vector

    res.mean<-mean(vector)

}

b)

Program:

Sample output:

Code to copy:

#Returns the result on applying sumFun,on numbers that

#are greater than trimBelow

lowerTrim2 <- function(x,trimBelow=-Inf,sumFunc=mean)

{

    #Create an empty vector

    vector = c()

    #Declare a varaible to keep track the index of vector

    j<-1

    #Interate through x

    for( ele in x)

    {

        #If the ele is greater than trimBelow,

        #Add it to vector

        if(ele > trimBelow)

        {

            vector[j] <- ele    

            #Increment the index by 1

            j<-j+1

        }

    }

    #Return the mean of vector

    result<-sumFunc(vector)

}

c)

Program:

Sample output:

Sample run:

Code to copy:

#Returns the result on applying sumFun,on numbers that

#are greater than trimBelow

lowerTrim3 <- function(x,trimBelow=-Inf,sumFunc = mean,...)

{

    #Create an empty vector

    vector = c()

    #Declare a varaible to keep track the index of vector

    j<-1

    #Interate through x

    for( ele in x)

    {

        #If the ele is greater than trimBelow,

        #Add it to vector

        if(ele > trimBelow)

        {

            vector[j] <- ele    

            #Increment the index by 1

            j<-j+1

        }

    }

    #Return the result of sumFun on vector

    result<-sumFunc(vector,...)

}


Related Solutions

C programming Write a function called string in() that takes two string pointers as arguments. If...
C programming Write a function called string in() that takes two string pointers as arguments. If the second string is contained in the first string, have the function return the address at which the contained string begins. For instance, string in(“hats”, “at”) would return the address of the a in hats. Otherwise, have the function return the null pointer. Test the function in a complete program that uses a loop to provide input values for feeding to the function.
Programming in C language (not C++) Write a function definition called PhoneType that takes one character...
Programming in C language (not C++) Write a function definition called PhoneType that takes one character argument/ parameter called "phone" and returns a double. When the variable argument phone contains the caracter a or A, print the word Apple and return 1099.99. When phone contains the caracter s or S print the word Samsung and return 999.99. When phone contains anything else, return 0.0.
R programming language A) Create a function that accepts two arguments, an integer and a vector...
R programming language A) Create a function that accepts two arguments, an integer and a vector of integers. It returns the count of the number of occurrences of the integer in the input vector. 1]Input: num_count <-function ??? 2]Input: num_count(2,c(1,1,2,2,3,3)) 2] Output: 2 3] Input: num_count(1,c(1,1,2,2,3,1,4,5,5,2,2,1,3)) 3] Output : 4 B) Create a function that accepts 3 integer values and returns their sum. However, if an integer value is evenly divisible by 3, then it does not count towards the...
JavaScript Write a function called "first" that takes in two arguments - the first is an...
JavaScript Write a function called "first" that takes in two arguments - the first is an argument called arr that is an array of numbers, the second is an optional number argument called num(hint: you'll need a default value - look back at the slides). If "num" was not passed in (since it's optional), the "first" function will return an array containing the first item of the array. If a value for "num" was given, the "first" function will return...
C Language - Programming Write a function that takes an array of ints, and the size...
C Language - Programming Write a function that takes an array of ints, and the size of the array – another int. It also returns a double. Call this one ‘average.’ Return a double that is the average of the values in the array. Demonstrate that it works by finding the average of an array with these values {78, 90, 56, 99, 88, 68, 92} Write a function that takes one double parameter, and returns a char. The parameter represents...
Programming in C (not C++) Write the function definition for a function called CompareNum that takes...
Programming in C (not C++) Write the function definition for a function called CompareNum that takes one doyble argument called "num". The function will declare, ask, and get another double from the user. Compare the double entered by the user to "num" and return a 0 if they are the same, a -1 num is less than the double entered by the user and 1 if it is greater.
Write a function called draw_card. It takes no arguments and returns an integer representing the value...
Write a function called draw_card. It takes no arguments and returns an integer representing the value of a blackjack card drawn from a deck. Get a random integer in the range 1 to 13, inclusive. If the integer is a 1, print "Ace is drawn" and return 1. If the integer is between 2 and 10, call it x, print "<x> is drawn" and return x (print the number, not the string literal "<x>"). If the number is 11, 12,...
Programming in C language (not C++) Write a runction derinition for a function called SmallNumbers that...
Programming in C language (not C++) Write a runction derinition for a function called SmallNumbers that will use a while loop. The function will prompt the user to enter integers ine by one, until the user enters a negative value to stop. The function will display any integer that is less than 25. Declare and initialize any variables needed. The function takes no arguments and has a void return type.
In Python, write a function called user_name that takes two arguments, first_name and last_name and creates...
In Python, write a function called user_name that takes two arguments, first_name and last_name and creates a “user name” consisting of the first three letters of the first name concatenated with the first three letters of the last name.   You can assume ach name is at least three letters long. Return the new user name.    your results should yield something like these test cases. >>> print(user_name("bob", "taft")) bobtaf >>> >>> print(user_name("Ralph", "Waldo")) RalWal >>>
In the R programming language, we would like to use the data set called iris to...
In the R programming language, we would like to use the data set called iris to build a simple linear regression model to predict Sepal.Length based on Petal.Length. Calculate the least squares regression line to predict Sepal.Length based on Petal.Length. Interpret the slope of the line in the context of the problem. Remember that both variables are measured in centimeters. Plot the regression line in a scatterplot of Sepal.Length vs. Petal.Length. Test H1: ??1 ≠ 0 at ?? = 0.05...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT