Выполнить, если выполняется несколько условий, без ошибок, но данные не меняются - PullRequest
0 голосов
/ 23 октября 2019

Я пытался вписать отсутствующие данные с медианой по условиям, без ошибок, но данные не изменились. Почему и как я могу заставить это работать?

housing = read.csv('housingsample22.csv')
if (housing$Car == 0 && housing$Tunit == 1) {
    housing$Car = median(housing$Car)
}
if (housing$Landsize == 0 && housing$Tunit != 1) { 
   housing$Landsize = median(housing$Landsize)
}
if (housing$BuildingArea == 0 && housing$TTHouse == 1) {
    housing$BuildingArea = median(housing$BuildingArea[housing$TTHouse == 1])
}

1 Ответ

0 голосов
/ 23 октября 2019

Есть причина, по которой ваши данные не меняются. Возьмите первое условие, например:

if (housing$Car == 0 && housing$Tunit == 1) 
   {housing$Car = median(housing$Car)}

Вы проверяете, равен ли весь столбец нулю. Наиболее определенно потребуется только первый элемент для оценки условия.

То, что вы могли бы сделать, что-то вроде:

require(dplyr)
median_car = median(housing$Car)

housing = housing %>% 
  mutate(Car = if_else(Car == 0 & Tunit == 1,median_car,Car))

Вы можете написать остальные 3 утверждения аналогично вместе. Дайте мне знать, если это работает.

...