我已经远离 R 中的函数,但认为这是更好的做法。现在我有这个问题。我写我的功能:
myFunction<-function(tab){ #takes tabular input
inP<-c()
for (x in 1:dim(tab)[1]){ #iterate over rows
rname<-rownames(tab)[x] #rownames as output
if(rname<5) inP<-c(inP,rname) #trivial work
}
return(inP) #return the vector made above
}
tablist<-as.list(paste("tab",1:4,sep=""))
for (x in 1:length(tablist)){
tablist[[x]]<-table(c(1:10),c(1:10))
}
inPvec<-c() #predefine vector to concatenate results into
for (x in 1:length(tablist)){ #tabs holds multiple tables as a list
myFunction(tablist[[x]]) #run myFunction for each table held in tabs
inPvec<-c(inPvec,inP) #concatenate results from each iteration
}
inP
#NULL
myFunction(tablist[[1]])
#[1] "1" "2" "3" "4" "10"
编辑为可行的例子:为懒惰道歉。
如果您在示例中运行循环,inP 将返回 NULL,inPvec 也是如此。在函数中运行单个表会返回正确的值。但是, inP 在调用它时为 NULL,所以我想这就是我的问题所在。
我希望循环遍历函数的所有内容都返回到单个向量,例如:
inPVec
#[1] "1" "2" "3" "4" "10" "1" "2" "3" "4" "10" "1" "2" "3" "4" "10" etc
非常感谢任何帮助。