Подсчитайте, сколько строк превысило определенное значение в кадре данных R

#r

Вопрос:

У меня есть фрейм данных, и я хочу подсчитать, сколько раз каждый столбец равен или превышает 0,61

 Data = data.frame(   v1 = c(0.1, 0.2, 0.4, 0.7, 0.9),  v2 = c(0.1, 0.12, 0.41, 0.72, 0.91),  v3 = c(0.03, 0.13, 0.92, 0.61, 0.90))  

Мой результат должен быть:

 Result = data.frame(v1 = 2,  v2 = 2,  v3 = 3)  

Спасибо!

Комментарии:

1. Попробуйте с colSums(Data gt;= .61)

Ответ №1:

Вы можете сделать

 Results lt;- sapply(Data, function(x) sum(x gt;= 0.61)) Results ## v1 v2 v3  ## 2 2 3   

Если вы действительно хотите получить data.frame результат, вы можете сделать

 Results lt;- as.data.frame(lapply(Data, function(x) sum(x gt;= 0.61))) Results ## v1 v2 v3 ## 1 2 2 3  

Ответ №2:

Вот dplyr решение:

 library(dplyr) Data %gt;%   mutate(across(everything(), ~ifelse(. gt;=0.61, 1, 0))) %gt;%   summarise(across(everything(), ~ sum(., is.na(.), 0)))  
 v1 v2 v3 1 2 2 3