R 如何将向量作为函数的条件?

R 如何将向量作为函数的条件?,r,if-statement,vector,R,If Statement,Vector,我做了这个函数来绘制一些图形,除了第三行的if条件外,它工作得很好 my_dsaurus_function <- function(datasets){ df1 <- filter(datasaurus_dozen, dataset == datasets) if(datasets == c("away", "h_lines", "bullseye")){ ggplot(df1) + geom_point(aes(x, y)) + fac

我做了这个函数来绘制一些图形,除了第三行的if条件外,它工作得很好

my_dsaurus_function <- function(datasets){

  df1 <- filter(datasaurus_dozen, dataset == datasets)

  if(datasets == c("away", "h_lines", "bullseye")){

    ggplot(df1) +
      geom_point(aes(x, y)) +
      facet_grid(. ~ dataset)

  }else{

    ggplot(df1) +
      geom_point(aes(x, y, colour = dataset, fill = dataset))

}}
它表示:条件的长度大于1,并且只使用第一个元素 较大物体的长度不是较小物体长度的倍数


如何消除这些错误?

使用%中的
%而不是
=
,除非
数据集
是长度大于1的向量。。在这种情况下,即使您使用
过滤器的方式看起来也不正确,您应该提供一个可复制的示例,这样我们就可以运行您的代码并帮助您找到最佳解决方案。请举例说明您的数据应该是什么样的,以及
数据集
看起来是什么样的。这些数据非常有用,并附上@Edo的评论:
Warning messages:
1: In dataset == datasets :
  longitud de objeto mayor no es múltiplo de la longitud de uno menor
2: In datasets == c("away", "h_lines", "bullseye") :
  longitud de objeto mayor no es múltiplo de la longitud de uno menor
3: In if (datasets == c("away", "h_lines", "bullseye")) { :
  la condición tiene longitud > 1 y sólo el primer elemento será usado