我偶然遇到过这个问题,将ifelse语句放在函数中总是会产生相同的结果。
Data$QuarterHour <- ifelse( Data$Minute < 15, return( 1 ),
ifelse( Data$Minute < 30 , return( 2 ),
ifelse( DataFrame$Minute < 45, return( 3 ), return( 4 ) ) ) )
这完全没问题。但是,当我把它放入一个函数。它没有。
calculateHourQuarter <- function( aMinute )
{
ifelse( aMinute < 15, return( 1 ),
ifelse( aMinute < 30 , return( 2 ),
ifelse( aMinute < 45, return( 3 ), return( 4 ) ) ) )
}
DataFrame$QuarterHour <- calculateHourQuarter( as.numeric( Data$Minute ) )
这导致列填充1。当我在控制台中以交互方式调用该函数时,当我从控制台传递整数时,它会产生正确的结果。
有什么想法吗?
谢谢!
答案 0 :(得分:7)
从您的R子句中删除<?php
$min = 1;
$max = 3;
$number = rand($min,$max);
while($number !== 2) {
echo ($number);
}
?>
语句。 R函数在遇到return
时终止。
此外,return
不需要ifelse
语句,只返回值。再次阅读return
; ?ifelse
的第一个示例向您展示了正确的工作方式:
ifelse
没有x <- c(6:-4)
sqrt(ifelse(x >= 0, x, NA))
,对吧?
最后,return
实际上并不是为嵌套而设计的(尽管你可以)。使用ifelse
或cut
代替(后者更适合您的需要,因为您需要整数结果):
findInterval