Je veux retourner un data.frame d'une fonction si le retour TRUE, sinon NA en utilisant return(ifelse(condition, mydf, NA))
Pourquoi ifelse convertit un data.frame en une liste: ifelse (TRUE, data.frame (1), 0))! = Data.frame (1)?
Cependant, ifelse les bandes les noms de colonnes du data.frame.
Pourquoi ces résultats sont-ils différents?
> data.frame(1)
X1
1 1
> ifelse(TRUE, data.frame(1), NA)
[[1]]
[1] 1
certains éléments d'information supplémentaires de dput():
> dput(ifelse(TRUE, data.frame(1), 0))
list(1)
> dput(data.frame(1))
structure(list(X1 = 1), .Names = "X1", row.names = c(NA, -1L),
class = "data.frame")
@Ben Merci pour le conseil. Je n'ai pas réalisé 'mydf [] <- NA' était une option. –
@Ben puis-je changer l'utilisation de 'if (is.na (myfn()))' en if (sum (is.na (myfn())> 0) 'dans une fonction suivante? Je pourrais poster un question séparée si vous avez besoin de clarification –
probablement juste 'if (tous (is.na (mydf)))'? –