Хотя уже есть некоторые рабочие решения, которые я выкладываю. Он похож (в использовании apply
и sum
), но использует регулярные выражения (через grepl
) для достижения этого. Таким образом, вы можете попробовать использовать любой шаблон, который вы хотите. Используемый трюк заключается в том, что логические значения могут быть суммированы:
x <- structure(list(First = c("A", "A", ""), Last = c("B", " ", " "
), Address = c("C", "C", " "), Address.2 = c("D", "D", " "),
Email = c(" E@E.com", " E@E.com", " E@E.com"), Custom1 = c(1L,
1L, 1L), Custom2 = c(2L, 2L, NA), Custom3 = c(3L, NA, NA)), .Names = c("First",
"Last", "Address", "Address.2", "Email", "Custom1", "Custom2",
"Custom3"), class = "data.frame", row.names = c(NA, -3L))
mostComplete <- function(x) {
tmp <- apply(x,1,grepl, pattern = "[[:alnum:]]")
return(which.max(apply(tmp,2,sum)))
}
mostComplete(x)
[1] 1
PS: Дайте молодежи шанс ...