我正在尝试创建一个有条件地选择数据框的函数。
但是,我一直在收到我无法理解的第一列值列表,而不是实际的数据集。
func1=function(type) ifelse(type=='B', mtcars, iris)
data=func1('A')
答案 0 :(得分:3)
尝试:
func1=function(type) ifelse(type=='B', return(mtcars), return(iris))
答案 1 :(得分:0)
请参阅?ifelse
- 参数yes
和no
应与test
的长度相同。你的test
长度为1,所以输出也被强制推断。
只需使用常规if
声明:
func1 <- function(type) if (type == "B") mtcars else iris
ifelse
适用于向量的逻辑比较,例如
ifelse(runif(10) > .5), "Heads", "Tails")
是一种快速而肮脏(且效率低下)的方式来获得硬币翻转。