#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