Например, у меня есть этот фрейм данных (DF):номера граф не-NA в колонке и вывода данных кадра
Color X1 X2 X3 X4
Red 1 1 0 2
Blue 0 NA 4 1
Red 3 4 3 1
Green 2 2 1 0
Я хотел бы создать функцию, которая подсчитывает количество не- NA в X2 как функция цвета. Я хотел бы получить эту функцию в новом фрейме данных с именем newdf. Это то, что я хотел бы для вывода:
Color X2
Red 2
Blue NA
Green 1
До сих пор, у меня есть этот код:
Question <- function(Color){
Result <-
rowsum((df[c("X2")] > 0) + 0, df[["X2"]], na.rm = TRUE)
rowSums(Result)[[Color]]
}
Question("Red")
Выход эта функция дает это просто Question("Red")= 2
, и я хотел бы, чтобы вместо того, чтобы получить мои результаты всех цвета в новом фрейме данных (newdf). Может кто-нибудь помочь с этим? Благодаря!
Вы также можете иметь именованный вектор 'tapply (IfElse (это .na (df $ X2), NA, 1), df $ Color, FUN = sum) ' – jogo
с использованием' rowsum: '' rowsum (as.numeric (! is.na (dt $ X2)), dt $ Color) ' – user20650