r - 在终端中打印函数的输出
问题描述
我在 R 中定义了以下函数。
#!/usr/bin/Rscript
fahr_to_kelvin <- function(temp) {
kelvin <- ((temp - 32) * (5 / 9)) + 273.15
print("Hello World")
return(kelvin)
}
当我进入fahr_to_kelvin(32)
R 控制台时,它返回 273.15 (没有打印“Hello World”!我不知道为什么!)无论如何,我尝试在下面编写代码:
chmod +x ~/tuning1/Fun1.R
~/tuning1/Fun1.R
但是,终端中没有出现任何内容(没有错误)。你能帮我为什么它不工作吗?
解决方案
问题是脚本文件只包含函数的声明,没有实际的调用。
在脚本末尾添加一个新行以调用该函数,或者更好地从命令行读取参数:
#!/usr/bin/Rscript
fahr_to_kelvin <- function(temp) {
kelvin <- ((temp - 32) * (5 / 9)) + 273.15
print("Hello World")
return(kelvin)
}
args <- commandArgs(trailingOnly=TRUE)
if (length(args) > 0) {
fahr_to_kelvin(as.numeric(args[1]))
} else {
print("Supply one argument as the numeric value: usage ./Fun1 temp")
}
$ Rscript Fun1.R 32
[1] "Hello World"
[1] 273.15
推荐阅读
- sql - SQL 查询 - 初学者
- python - 移除成员最高角色的机器人 (discord.py)
- matrix - 如何在没有父子关系的同一矩阵中显示不同的组
- xml - 一个元素的内联子元素,如果该类型只有一个元素
- sql - Average 在 SQL Server 中计算加权平均值
- node.js - sequelize/sequelize-typescript - 带有 HasMany 的 findAll 返回一个对象而不是数组
- logging - 在使用@slf4j 时不能在@Test 方法下使用 log.info() 方法
- node.js - 无法识别的管道阶段名称:'$populate'
- db2 - DB2 Xml 框架逻辑
- java - 使用两个 ViewModel 从 AndroidStudio 中的 Fragments 获取不同类型的数据