【发布时间】:2020-12-15 20:25:23
【问题描述】:
所以,我正在复习如何在 R 中处理数据帧,我从https://cloud.r-project.org/web/packages/data.table/vignettes/datatable-intro.html 发现了这段代码:
input <- if (file.exists("flights14.csv")) {
"flights14.csv"
} else {
"https://raw.githubusercontent.com/Rdatatable/data.table/master/vignettes/flights14.csv"
}
显然,这会根据条件将 if 和 else 语句中的字符串(字符向量?)分配给 input。这是如何工作的?这似乎是魔术。我希望在官方 R 文档中找到解释这一点的地方。
我会从其他语言中完成:
if (file.exists("flights14.csv")) {
input <- "flights14.csv"
} else {
input <- "https://raw.githubusercontent.com/Rdatatable/data.table/master/vignettes/flights14.csv"
}
或者在 R 中有ifelse,它似乎也旨在做到这一点,但不知何故,第一个例子也有效。我可以记住这是可行的,但我想知道我是否错过了了解 R 工作原理的大局的机会。
【问题讨论】:
标签: r function variable-assignment expression-evaluation