有条件地选择数据框或数据集,但错误地接收列表

时间:2016-02-06 23:23:08

标签: r function parameters

我正在尝试创建一个有条件地选择数据框的函数。

但是,我一直在收到我无法理解的第一列值列表,而不是实际的数据集。

func1=function(type) ifelse(type=='B', mtcars, iris)
data=func1('A')

2 个答案:

答案 0 :(得分:3)

尝试:

func1=function(type) ifelse(type=='B', return(mtcars), return(iris))

答案 1 :(得分:0)

请参阅?ifelse - 参数yesno应与test的长度相同。你的test长度为1,所以输出也被强制推断。

只需使用常规if声明:

func1 <- function(type) if (type == "B") mtcars else iris

ifelse适用于向量的逻辑比较,例如

ifelse(runif(10) > .5), "Heads", "Tails")

是一种快速而肮脏(且效率低下)的方式来获得硬币翻转。