我有多个用R编写的用户定义函数。我通常会输出代码,然后在R控制台中打印输出。我的问题是我有3个函数写在一个文件中,所有三个函数都有相似的输出(这里我有z,这在所有三个函数中都很常见)..在R中是否有任何解决方案,我不必键入print(z)在每个功能的最后,但在采购我的代码后,我应该能够打印特定于功能的z吗?
harry<-function(i){
for(i in 3:5) {
z <- i + 1
print(z)
}
}
harry1<-function(i){
for(i in 1:5) {
z <- i + 1
print(z)
}
}
harry2<-function(i){
for(i in 1:5) {
z <- i + 5
print(z)
}
}
答案 0 :(得分:1)
harry <- function(i){
z <- 1 # initialize
for(i in 3:5) {
z[i] <- i + 1 # save to vector
}
return(z) # returns the object z
}
现在你可以去:
harry(100)
z <- harry(100)
print(z)
z
访问相同的信息。
答案 1 :(得分:1)
我可以建议一种更通用的做事方式吗?
harry<-function(i,sq){
sapply(sq, function(s,i) {
s + i
}, i=i )
}
harry(i=1,sq=3:5)
harry(i=1,sq=1:5)
harry(i=5,sq=1:5)