Каков хороший способ переопределить / отредактировать определенные поля во фрейме данных? - PullRequest
0 голосов
/ 30 ноября 2018

Скажем, для mtcars, миль на галлон для Toyota Corolla должен быть 23,9 вместо 33,9.Как бы вы это сделали?

Для целей этого вопроса, пожалуйста, предположите, что в Toyota Corolla может быть несколько рядов.

Пример 1:

mtcars["Toyota Corolla" & mtcars$mpg==33.9,] <- 23.9

дает

Ошибка в "Toyota Corolla" & mtcars $ mpg == 33,9: операции возможны только для числовых, логических или сложных типов

Пример 2:

mtcars[mtcars$mpg==33.9,"mpg"] <- 23.9

небезопасно, поскольку может быть несколько значений mpg.

1 Ответ

0 голосов
/ 30 ноября 2018

Вместо этого мы можем проверить rownames и обновить значение

df <- mtcars
df[rownames(df) == "Toyota Corolla", "mpg"] <- 23.9

#....
#Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
#Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
#Toyota Corolla      23.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
#Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
#Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
#....

. Или, если мы хотим быть более уверенными и проверить mpg переменную, мы можем сделать

df[rownames(df) == "Toyota Corolla" & df$mpg == 33.9, "mpg"] <- 23.9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...