【问题标题】:Implementing a TRUE/FALSE flag in an R function在 R 函数中实现 TRUE/FALSE 标志
【发布时间】:2014-01-28 20:09:34
【问题描述】:

我有一个 R 函数:

subsequences <- function(data){
  sequences.sts <- seqdef(data, left = "DEL", gaps = "DEL", right = "DEL")
  sub.sequences <- seqsubsn(sequences.sts, DSS = FALSE)
  (sub.sequences)
}

现在我想实现一个TRUE/FALSE 标志来运行一些额外的规范化代码,如下所示:

subsequences <- function(data, normalization = TRUE/FALSE){
   sequences.sts <- seqdef(data, left = "DEL", gaps = "DEL", right = "DEL")
   sub.sequences <- seqsubsn(sequences.sts, DSS = FALSE)
   (sub.sequences)  

      IF normalization=TRUE, RUN CODE BELOW, IF FALSE -> END
         sequences.length <- seqlength(sequences.sts)
         order_normalized <- sub.sequences/(2^(max(sequences.length)))

   (order_normalized*1000000)
}

我该如何实现?

【问题讨论】:

  • 请阅读 R 的任何介绍性指南。它将解决正确的 if 语法以及函数定义和默认参数... FWIW,它看起来像 if(normalization) {do stuff} else {return(whatever)}

标签: r function


【解决方案1】:
library(TraMineR)

subsequences <- function(data, normalization){
  sequences.sts <- seqdef(data, left = "DEL", gaps = "DEL", right = "DEL")
  sub.sequences <- seqsubsn(sequences.sts, DSS = FALSE) 

  if(normalization){
  sequences.length <- seqlength(sequences.sts)
  order_normalized <- sub.sequences/(2^(max(sequences.length)))
  (order_normalized*1000000)}

  else {return(sub.sequences)}
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    • 1970-01-01
    • 2018-09-07
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多