r - 使用 if 语句在 R 中定义函数
问题描述
我想创建一个新列,DELAY_CAUSE
. 此列需要包含NA
ifARR_DELAY
为 0 或更低;"KNOWN"
如果CARRIER_DELAY
, WEATHER_DELAY
,SECURITY_DELAY
和LATE_AIRCRAFT_DELAY
的和至少等于ARRIVAL_DELAY
,"UNKNOWN"
否则。
我的代码是:
delay_reason <- function() {
if ARR_DELAY <= 0 {
return("NA")
} else if(sum(CARRIER_DELAY, WEATHER_DELAY, SECURITY_DELAY, LATE_AIRCRAFT_DELAY) >= ARRIVAL_DELAY) {
return("KNOWN")
} else {
return("UNKNOWN")
}
}
df_flights$CAUSE_DELAY <- delay_reason
但是,我收到两个错误:
第一的:
Error: no function to return from, jumping to top level
第二:
Error: unexpected '}' in " }"
如何修复我的功能有效?
先感谢您!
解决方案
Use the ifelse
function for a vectorized solution:
df$delay_reason <- ifelse(df$ARR_DELAY <= 0, "NA",
ifelse(df$CARRIER_DELAY + df$WEATHER_DELAY + df$SECURITY_DELAY +
df$LATE_AIRCRAFT_DELAY >= df$ARRIVAL_DELAY, "KNOWN", "UNKNOWN"))
推荐阅读
- kubernetes - 有没有办法为 damonset 生成的每个 pod 应用不同的 configmap?
- typo3 - TYPO3 中的 eID 是什么?
- javascript - 如何在赛普拉斯测试中获取 Gatsby.js 路由/端点的完整列表
- azure - 通过 Azure 逻辑应用访问 Blob 存储
- angular - 如何在ngrx中将withLatestFrom与选择器一起使用?
- azure-blob-storage - 我应该如何使用 Azure Blob 容器?
- python - 关于Python中的局部变量,范围,for的问题
- php - 单个表单多次提交到同一个数组
- python - 有条件地编辑 n 行的列值
- php - 如何使用 PHP 将值插入 HTML 表单?