как сравнить непрерывные переменные с их средствами по строкам - PullRequest
0 голосов
/ 17 сентября 2018

Мне нужно сравнить четыре непрерывные переменные с их средними значениями в r по строкам, если три из них больше, чем среднее значение, результатом в пятом столбце должно быть «Да», в противном случае - нет.

library(dplyr)
dd <- select_if(iris, is.numeric)
means <- apply(dd, 2, mean)
dd[1,] > means    

если у меня есть 3 ИСТИНА в строке, результат в 5 var - Important_cases будет Да, если нет, и я должен сделать для всех строк.

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018
df <- iris[,1:4]
colMeans(df)
# Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
#     5.843333     3.057333     3.758000     1.199333 
df$Compare <- ifelse(rowSums(df > colMeans(df)) > 3, "Yes", "No")
tail(df)
#     Sepal.Length Sepal.Width Petal.Length Petal.Width Compare
# 145          6.7         3.3          5.7         2.5      No
# 146          6.7         3.0          5.2         2.3     Yes
# 147          6.3         2.5          5.0         1.9      No
# 148          6.5         3.0          5.2         2.0      No
# 149          6.2         3.4          5.4         2.3      No
# 150          5.9         3.0          5.1         1.8     Yes
0 голосов
/ 17 сентября 2018

Я не уверен, что вы этого хотите или нет, но я надеюсь, что это поможет:

data(iris)
df <- iris[, 1:4]
cm = colMeans(df)
df[,5] = apply(df, 1, function(x){
    compares = x> cm
        if(sum(compares) == 3){
            return ("YES")
        }else{
            return ("No")
            }
})

Если вы хотите, чтобы 3 или более переменных были больше, чем их средства для вывода, стали "ДА", используйте >= вместо '==' в 6-й строке,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...