Dlaczego konstrukcja if-else i funkcja ifelse() zachowują się inaczej?if-else vs ifelse z listami
mylist <- list(list(a=1, b=2), list(x=10, y=20))
l1 <- ifelse(sum(sapply(mylist, class) != "list")==0, mylist, list(mylist))
l2 <-
if(sum(sapply(mylist, class) != "list") == 0){ # T: all list elements are lists
mylist
} else {
list(mylist)
}
all.equal(l1,l2)
# [1] "Length mismatch: comparison on first 1 components"
+1. Zastanawiam się, co kryje się za tą decyzją projektową ... – Ryogi
@Dason, na niepowiązanej notatce, jeśli mówię, że mam to 'df.stats $ Mean.Result2 <- ifelse ((df.stats $ t.test.equal <= 0.05 & df.stats $ f.test> 0.05 & df.stats $ Mean.Diff <0), "Slower", 0) ' czy istnieje alternatywny sposób zapisu go przy pomocy if - else construct? czy wydajność ifelse jest lepsza od innej, jeśli konstruujesz –