Using ifelse() with an interval as conditional expression in R

if else in r
r ifelse multiple actions
nested if else in r
if else in r data frame
the condition has length > 1 and only the first element will be used
conditional loop in r
r if else multiple columns
conditional calculation in r

My dataset looks like this:

> head(GLM_df)
# A tibble: 6 x 9
# Groups:   hour [6]
   hour Feeding Foraging Standing ID    Area     Feeding_Foraging Feeding_Standing Standing_Foraging
  <int>   <dbl>    <dbl>    <dbl> <chr> <chr>               <dbl>            <dbl>             <dbl>
1     0    3.5      23.3     1    41361 Seronera             26.8             4.5               24.3
2     1    2.71     24.2     1    41361 Seronera             26.9             3.71              25.2
3     2    2.5      24.3     2    41361 Seronera             26.8             4.5               26.3
4     3    6.88     18.7     3.89 41361 Seronera             25.5            10.8               22.6
5     4    7.5      17.6     3.67 41361 Seronera             25.1            11.2               21.3
6     5    7.22     19.6     2.45 41361 Seronera             26.8             9.67              22.1

And I simply would like to add a column Day_Night, which will have Day for a value in GLM_df$hour between 6 and 18 or will have Night otherwise.

I tried using the expression below but I'm getting the following error:

> GLM_df$Day_Night<-ifelse(GLM_df$hour==(6:18),Day,Night)
Error in ifelse(GLM_df$hour == (6:18), Day, Night) : 
  object 'Day' not found
In addition: Warning message:
In GLM_df$hour == (6:18) :
  longer object length is not a multiple of shorter object length

Any help is appreciated!

Using data.table:

GLM_df <- as.data.table(GLM_df)
GLM_df[hour %in% c(6:18), Day_Night:="Day"]
GLM_df[!hour %in% c(6:18), Day_Night:="Night"]

ifelse: Conditional Element Selection, ifelse returns a value with the same shape as test which is filled with elements class(x) y ## This is a (not atypical) case where it is better *not* to use ifelse(),� In R, an if-else statement tells the program to run one block of code if the conditional statement is TRUE, and a different block of code if it is FALSE. Here’s a visual representation of how this works, both in flowchart form and in terms of the R syntax:

Try using findInterval():

GLM_df$Day_Night <- ifelse(findInterval(GLM_df$hour, c(6, 18),
                           rightmost.closed=TRUE) == 1L, 'Day', 'Night')

R ifelse() Function (With Example), This is a shorthand function to the traditional ifelse statement. Use DM50 to GET 50% OFF! for Lifetime access on our Getting Started with Data there is a vector equivalent form of the if…else statement in R, the ifelse() function. This is to say, the i-th element of result will be x[i] if test_expression[i] is TRUE else it will � Here, condition is any expression that evaluates to a logical value, and true.expression is the command evaluated if condition is TRUE or non-zero. The else part is optional and omitting it is equivalent to using else {NULL}. If condition has a vector value, only the first component is used and a warning is issued (see ifelse() for vectorized

simply:

library(tidyverse)
data %>% mutate(day_night = ifelse( hour %in% 6:18, "day", "night"))

Or:

data$day_night <- ifelse( data$hour %in% 6:18, "day", "night")

How to Chain If…Else Statements in R, With over 20 years of experience, he provides consulting and training services in the use of R. Joris Meys is a statistician, R programmer and R lecturer with the� Backreferences to a capturing group that took part in the match and captured nothing always succeed. Conditionals evaluating such groups execute the “then” part. In short: if you want to use a reference to a group in a conditional, use (a)? instead of (a?). Continuing with our regex, b matches b. The regex engine now evaluates the conditional.

Conditionals in R, The if() statement is common in all programming languages. 1. if(condition) { true.expression } else {false.expression} The else part is optional and omitting it is equivalent to using else {NULL}. only the first component is used and a warning is issued (see ifelse() for vectorized needs). baseR-V2016.2 - Data Management and Manipulation using R. Tested on R versions 3.0.X through 3.3.1 Last update: 15 August 2016

5 Control flow, I recommend using ifelse() only when the yes and no vectors are the same type as it is It uses a special syntax to allow any number of condition-vector pairs:. Basic Logical Operators in R example. This example helps you understand how the logical operators in R Programming used in If statements. For this r logical operators example, we assigned one integer variable. Then, inside the If Statement, we are using basic logical operators such as &&, ||, and !. Please refer to the Comparison Operators in R

Creating New Variables in R with mutate() and ifelse(), ifelse(). ifelse() is from base R. The function tests a logical condition in its first argument. If the test is TRUE, ifelse() returns the second argument� The ifelse() function in R works similar to MS Excel IF function. See the syntax below - ifelse(condition, value if condition is true, value if condition is false)

Comments
  • GLM_df$Day_Night<-ifelse(GLM_df$hour %in% c(6:18), "Day", "Night")