Изменение значения фрейма данных на основе другого фрейма данных - PullRequest
3 голосов
/ 05 сентября 2011

Снова мне нужна ваша помощь для, возможно, простого вопроса, который не ясен для начинающего пользователя R.

Мне нужно манипулировать кадром данных, чтобы заменить NA значения на "реалистичные" значения для подачи в другое приложение.

Кадр данных содержит значения -3.0, которые были признаком недопустимых значений в исходной базе данных. Мне нужно заменить все значения -3.0 на данные, поступающие из другого фрейма данных, или, возможно, для интерполяции.

Первый кадр данных будет

1.0  2.0  3.0  4.0
2.0  3.0 -3.0 -3.0
1.0  4.0 -3.0  6.0
1.0  5.0  4.0  5.0

второй будет

1.0  1.0  1.0  1.0
2.0  2.0  9.0  9.0
2.0  2.0  9.0  2.0
1.0  1.0  1.0  1.0

и ожидаемый результат

1.0  2.0  3.0  4.0
2.0  3.0  9.0  9.0
1.0  4.0  9.0  6.0
1.0  5.0  4.0  5.0

Полагаю, это можно сделать с помощью цикла for, но я не нашел способа сделать это.

Заранее спасибо

1 Ответ

5 голосов
/ 05 сентября 2011

На самом деле это довольно просто сделать без цикла for: если ваши фреймы данных A и B, то команда будет

A[A == -3] = B[A == -3]

Другими словами: для всех индексов A, имеющих значение -3, присвойте значения B для соответствующих индексов.

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