【问题标题】:Non-numeric quantities used as arguments in R Function在 R 函数中用作参数的非数字量
【发布时间】:2017-02-01 21:00:46
【问题描述】:

在我正在写的function() 中,我想知道如何允许 函数的一个参数作为非数字字符(即单词),但我会将这些非数字字符转换回数值?

我正在使用以下简单的 R 代码(没有成功):

a = medium

if(a == "medium"){a = 1/2}else 
  if(a == "wide"){a = sqrt(2)/2}else
    if(a == "verywide"){a = 1}

【问题讨论】:

  • ... 和 elseif 应该在同一行
  • 或者:a = c(medium = 1/2, wide = sqrt(2)/2, verywide = 1)[a]

标签: r function


【解决方案1】:

使用a = mediumR 将查找名为medium 的对象,而不是字符"medium"。请注意," 仅用于显示。实际字符为medium(运行cat("medium") 进行检查)

你的代码可以固定如下:

a = "medium"

if(a == "medium"){
    a = 1/2
} else if (a == "wide"){
    a = sqrt(2)/2
} else if (a == "verywide"){
    a = 1
}

【讨论】:

  • 你可以通过分配整个语句a = if ...来避免输入a =三次
  • Darshan,有没有办法让用户简单地输入medium 而不是"medium"?也就是用户写a = medium而不是"a = medium"?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-27
  • 2021-12-23
  • 2018-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多