meitei
February 3, 2023, 6:46pm
1
I am using ifelse to filter from a vector of characters.
file_list=c("a.csv","b.csv","c.csv","d.csv","e.csv","f.csv")
rmd_list=c("c.csv","d.csv","e.csv","f.csv")
input=as.list(c("Tom","Brad"))
RCM=input[[1]]
ifelse(RCM %in% "Tom",file_list[!file_list%in%rmd_list],0)
The output suppose to show "a.csv" and "b.csv"
The ifelse()
function returns a vector the same length as the test expression, which in this case is 1.
length(RCM %in% "Tom")
#> [1] 1
Instead, you can use if...else
.
if(RCM %in% "Tom") {file_list[!file_list %in% rmd_list]} else {0}
#> [1] "a.csv" "b.csv"
Created on 2023-02-03 with reprex v2.0.2.9000
1 Like
FJCC
February 3, 2023, 7:57pm
3
ifelse steps along the vectors in its arguments. Since RCM is of length 1, it only returns one value. This illustration might help you see what ifelse does.
ifelse(c("Tom","Brad","Alice","Tom") %in% "Tom", c(1,2,3,4),c(11,22,33,44))
[1] 1 22 33 4
system
Closed
February 10, 2023, 8:39pm
5
This topic was automatically closed 7 days after the last reply. New replies are no longer allowed. If you have a query related to it or one of the replies, start a new topic and refer back with a link.