【问题标题】:Multiple inputs into a R functionR函数的多个输入
【发布时间】:2015-03-17 01:23:48
【问题描述】:

所以我目前在文件 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 添加另一个块,这将允许我为第二列提取数据,该列中的数据是会话 1-2、会话 3-4、会话 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]
}

【问题讨论】:

  • 那么你想要传递给pullsec2的参数是什么,你想要的结果是什么?
  • 我想将 2 个整数传递给 pullsec(比如 int1 和 int2),结果应该是“Sessions int1-int2”

标签: r function input knitr rnw


【解决方案1】:

其中任何一个都可以:

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)

【讨论】:

    猜你喜欢
    • 2022-01-12
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    相关资源
    最近更新 更多