r语言 function 指定多个返回值
# Goals: To write functions # To write functions that send back multiple objects. # FIRST LEARN ABOUT LISTS -- X = list(height=5.4, weight=54) print("Use default printing --") print(X) print("Accessing individual elements --") cat("Your height is ", X$height, " and your weight is ", X$weight, "\n") # FUNCTIONS -- square <- function(x) { return(x*x) } cat("The square of 3 is ", square(3), "\n") # default value of the arg is set to 5. cube <- function(x=5) { return(x*x*x); } cat("Calling cube with 2 : ", cube(2), "\n") # will give 2^3 cat("Calling cube : ", cube(), "\n") # will default to 5^3. # LEARN ABOUT FUNCTIONS THAT RETURN MULTIPLE OBJECTS -- powers <- function(x) { parcel = list(x2=x*x, x3=x*x*x, x4=x*x*x*x); return(parcel); } X = powers(3); print("Showing powers of 3 --"); print(X); # WRITING THIS COMPACTLY (4 lines instead of 7) powerful <- function(x) { return(list(x2=x*x, x3=x*x*x, x4=x*x*x*x)); } print("Showing powers of 3 --"); print(powerful(3)); # In R, the last expression in a function is, by default, what is # returned. So you could equally just say: powerful <- function(x) {list(x2=x*x, x3=x*x*x, x4=x*x*x*x)}
即将多个返回对象,放入同一个list内
a <- data.frame(b = c(1,2,3,4) , d = c('a','s','d','f'))
z <- data.frame(max = c(1111) , min = c(1))
e <- list(a,z)
此时 e[[1]] 即是a 其class 即为dataframe
e[[2]] 即是 z 其class也为dataframe