R 如何将向量作为函数的条件?
我做了这个函数来绘制一些图形,除了第三行的if条件外,它工作得很好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
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