Мне нужно придумать функцию, основанную на разных наборах данных, которые были переданы в функцию, операции разные. Используя mtcars
и iris
в качестве примера:
func<-function(df) {
if (df ==mtcars){
df%>%summarise(cnt=n())}
else{
df
}
}
func(mtcars)
func(iris)
Если это mtcars
, дайте мне счетчик, но если это iris
, просто верните мне его. Однако этот код не работает так, как я хочу. Когда я делаю func(mtcars)
, я получаю предупреждающее сообщение, подобное этому
Warning message:
In if (df == mtcars) { :
the condition has length > 1 and only the first element will be used
. Если я сделаю func(iris)
, это выдаст мне ошибку Error in Ops.data.frame(df, mtcars) :
‘==’ only defined for equally-sized data frames
. Так как мне это исправить?