多个输入到R函数

时间:2015-01-19 04:11:04

标签: r function input knitr rnw

所以我目前在一个文件pullsec.R

中有这个代码
pullsec <- function(session=NULL){
  if(is.null(session))  session<-1
  stopifnot(is.numeric(session))
  paste("Session",1:10)[session]
}

在.Rnw文件中,我调用此pullsec.R并选择会话编号3:

source("pullsec.R")
setsec <- pullsec(3)

将拉出列Session的数据值为“Session 3”的所有行

我想为pullsec.R添加另一个块,它允许我为第二列提取数据,Sessions,其中该列中的数据是Sessions 1-2,Sessions 3-4,Session 5-6等但我不确定如何修改pullsec块以接受多个输入。

我尝试了很多解决方案,但没有咬人。我最天真的解决方案是:

pullsec2 <- function(sessions1=NULL,sessions2=NULL){
  if(is.null(sessions1))  sessions1<-1
  stopifnot(is.numeric(session1))
  paste("Sessions",1:10,"-",1:10)[sessions]
}

1 个答案:

答案 0 :(得分:0)

其中任何一个都可以:

pullsec2 <- function(session1=1,session2=2){
  stopifnot(is.numeric(session1))
  stopifnot(is.numeric(session2))
  paste0("Sessions ",session1,'-',session2)
}
pullsec2(3,4)

pullsec2 <- function(sessions=1){
  stopifnot(is.numeric(sessions))
  paste("Sessions",paste0(sessions,collapse="-"))
}

pullsec2(3:4)