如何在R中的map函数中使用ifelse
我ifelse在map函数内部遇到这句话的问题:
df<-list(mtcars,mtcars)
我想要做的就是以这种方式组织此列表的每个数据框:slice(x,c(n(),2:(n()-1),1))
map(df, ~ slice(.x,c(n(),2:(n()-1),1))) # it works well.
但是当我设置条件时,我无法在 ifelse 中执行此操作x$cyl == 4:
map(df, ~ ifelse(sum(.x$cyl == 4) > 0, slice(.x,c(n(),2:(n()-1),1)), .x)) # The output is weird
我尝试使用 lapply 做同样的事情,但它不起作用:
lapply(df, function(x) ifelse(sum(x$cyl == 4) > 0, slice(x,c(n(),2:(n()-1),1)),x))
有什么帮助吗?