2016-02-08 2 views
-2

Я пытаюсь удалить все строки в dataframe, когда среднее значение вектора> индивидуальное число в векторе. По какой-то причине он, кажется, выбирает, какие из них он удаляет. Спасибо всем, спасибо, вот мой код.Удаление строк в R

k<-c(HW2$AGE) 
j<-mean(k) 
for (i in HW2$AGE) 
    if (j>i){ 
    HW2 <- HW2[-i, ] 
    } 
+3

'HW2 [ HW2 $ Age <= mean (HW2 $ AGE),] 'или аналогичный даст вам результат, который вы хотите, я думаю. Обычно выборки или удаление строк не должны содержать код цикла, так как R имеет встроенные векторизованные функции. – thelatemail

+0

СПАСИБО ВАС !!! благодарю вас за помощь, я действительно рассматриваю ее особенно потому, что единственный опыт кодирования, который у меня есть, - это едва ли какая-либо Java, и я все еще пытаюсь изучить функции R. – MCjuberfish

+1

'i' в вашем цикле содержит значение' HW2 $ AGE', а не индекс, так что вы не будете делать то, что хотите. Вы также пытаетесь сохранить весь массив на каждой итерации. Я настоятельно рекомендую начинающий курс R, такой как Coursera. –

ответ

3

Не нужно указывать путь. Вместо этого я хотел бы использовать ниже

Примеры данных

x <- data.frame("A"= runif(10), "B" = runif(10)) 

Посчитаем среднее

xMean <- mean(x[,"A"]) 

Исключить строки

y <- x[x$A < xMean,] 

Это, пожалуй, самый очевидный способ исключить ненужные строки

+0

Это векторный код. – thelatemail

+0

Да, моя ошибка, я хотел написать цикл. Спасибо – Celeste

Смежные вопросы