【发布时间】:2015-10-29 22:27:51
【问题描述】:
非常感谢您提前帮助我 - 我是 R 编程的新手,并且一直在尝试使用通过另一个函数接受的用户输入。第二个函数是一个简单的工资计算器,其中三个变量是小时数、每小时工资率以及一旦工作时间数超过 180 时工资率相乘的次数。我编写了第一个名为 enterval 的函数,通过它我我要求用户输入上述变量。在称为薪水的第二个函数中,我试图在运行支付计算之前使用 enterval 接受输入。我被卡住了,因为当我遇到“if”条件时,第二个函数salary 正在中断,指定 if h > 180。我在下面分享我的代码。再次感谢您的友好帮助。我在以前的答案中进行了搜索,但找不到完全回答我的查询的特定实例 - 如果我错过了适当的先前回复,我深表歉意。 我在运行此代码时遇到的错误是“h > 180 中的错误: 比较 (6) 仅适用于 atomic 和 list 类型"
enterval <- function() {
h <- (readline("Please enter number of hours: "))
h <- as.integer(h)
r <- (readline("Please enter applicable rate: "))
r <- as.integer(r)
m <- (readline("Please confirm your multiplier: "))
m <- as.integer(m)
}
salary <- function () {
enterval()
if (h > 180) {
totalpay <- (180*r) + ((h-180)*r*m)
}
else {
totalpay <- (h*r)
}
totalpay
}
【问题讨论】:
-
非常感谢大家的大力帮助。答案确实打开了 R 中函数内函数的概念。我尝试了各种解决方案并得到了我需要的结果,以及一些我根本不知道的高级选项。向您提供最诚挚的帮助。
标签: r function user-input readline