Хобрук: Ваш путь к мастерству в программировании

Как заменить значение из фрейма данных в R значением из другого раздела фрейма данных?

Я импортировал набор данных в R и обнаружил один выброс. Я хочу сделать конкретную замену этих изначально импортированных данных. В частности, мои данные выглядят следующим образом:

Adhesive TestCond Lab Speci.no Sample.id Wood.fail Shear.str
1        W      BDF   A   ABW-01         1       100 707.99296
2        W      BDF   A   ABW-02         2       100 557.61752
3        W      BDF   A   ABW-03         3       100 759.13431
4        W      BDF   A   ABW-04         4       100  84.70696
5        W      BDF   A   ABW-05         5       100 519.56020
6        W      BDF   A   ABW-06         6       100 502.13246

Он имеет около 3000 строк. Эти данные были импортированы с помощью следующей команды:

FPInnovation <- read.csv()

Проблемным значением Wood.fail является следующее значение

Adhesive TestCond Lab Speci.no Sample.id Wood.fail Shear.str
6        W      BDF   D   DBW-07         7       0 23.68061

Было обнаружено, что значение 0 в столбце Wood.fail является ошибкой. Других значений 0 может и не быть. Таким образом, я хочу сделать замену только в строке выше. Как заменить конкретное значение Wood.fail 0 (упомянутое выше) значением, хранящимся в следующей строке (замените 0 выше на 90 ниже):

Adhesive TestCond Lab Speci.no Sample.id Wood.fail Shear.str
31        W      BDF   D   DBW-31         31     90 237.3734
04.03.2013

  • Если вы знаете номер строки (row.id): FPInnovation$Wood.fail[row.id] <- 90 05.03.2013
  • Спасибо за быстрый ответ! Это легко исправить. Теперь я думаю о случаях, когда мой набор данных намного больше. Что делать, если я не знаю номер строки и хочу подставить значения для Wood.fail, где Speci.no==DBW-07? Я могу придумать, как это сделать в SQL. Есть ли аналогичный способ сделать это в R? 05.03.2013
  • Спасибо за улов. Пропустил это во время собственных раскопок. 05.03.2013

Ответы:


1

Это просто индексация. Это работает следующим образом:

FPInnovation$Wood.fail[LOGICAL TEST] <- updatedvalue

Так специально для Speci.no=="DBW-07"

FPInnovation$Wood.fail[FPInnovation$Speci.no=="DWB-07"] <- updatedvalue

Это выберет и обновит строки, удовлетворяющие логическому тесту.

04.03.2013
Новые материалы

Я собираюсь научить вас Python шаг за шагом
Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..

React on Rails
Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

Что такое гибкие методологии разработки программного обеспечения
Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...

Ториго  — революция в игре Го
Наш следующий вызов против ИИ и для ИИ. Сможет ли он победить людей в обновленной игре Го? Обратите внимание, что в следующей статье AI означает искусственный интеллект, а Goban  —..

Простое развертывание моделей с помощью Mlflow — Упаковка классификатора обзоров продуктов NLP от HuggingFace
Как сохранить свои модели машинного обучения в формате с открытым исходным кодом с помощью MLFlow, чтобы позже получить возможность легкого развертывания. Сегодня модели упаковки имеют несколько..

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