Hi, The OR operator you used is working as expected: || starts from the left and evaluates only enough of the options to determine the results. The first test is TRUE, so the result is TRUE. It sounds like you might actually want an AND operator, & or &&, which will only return TRUE if all elements are TRUE,
More on logical operators: https://stat.ethz.ch/R-manual/R-devel/library/base/html/Logic.html Sarah On Thu, Sep 30, 2021 at 9:07 AM Luigi Marongiu <marongiu.lu...@gmail.com> wrote: > > Hello, > I have two data frames, each with three rows: > ``` > df_a <- data.frame(a = letters[1:3], b = LETTERS[1:3], q = c("", "", ""), > stringsAsFactors = FALSE) > df_b <- data.frame(a = letters[4:6], b = LETTERS[4:6], q = c("", "", "1.5"), > stringsAsFactors = FALSE) > ``` > I need to test whether the dataframe has been selected and if there is > a value in the q column. I combined in the following test: > ``` > if (nrow(df_a) == 0 || unique(df_a$q) == "") { > print("empty") > } > if (nrow(df_b) == 0 || unique(df_b$q) == "") { > print("empty") > } > ``` > The test for df_a worked as expected: > ``` > > nrow(df_a) == 0 > [1] FALSE > > unique(df_a$q) == "" > [1] TRUE > > (nrow(df_a) == 0 || unique(df_a$q) == "") > [1] TRUE > > if (nrow(df_a) == 0 || unique(df_a$q) == "") { > + print("empty") > + } > [1] "empty" > ``` > but the one for df_b did not: > ``` > > nrow(df_b) == 0 > [1] FALSE > > unique(df_b$q) == "" > [1] TRUE FALSE > > (nrow(df_b) == 0 || unique(df_b$q) == "") > [1] TRUE > > unique(df_b$q) > [1] "" "1.5" > ``` > I say that it did not work because unique(df_b$q) IS NOT "", hence > `(nrow(df_b) == 0 || unique(df_b$q) == "")` should be FALSE, instead R > evaluated the first element of unique(df_b$q) == "", which is TRUE. > How can I properly implement a logic test on vectors? > Thank you > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. -- Sarah Goslee (she/her) http://www.sarahgoslee.com ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.