Как изменить элемент исходного фрейма данных с помощью dplyr

У меня есть табличка:

library('tibble')

df <- tibble(
  ticker = c("first", "second", "third"),
  status = c(T,T,T)
)

> df
# A tibble: 3 x 2
  ticker status
 1 first  TRUE  
 2 second TRUE  
 3 third  TRUE  

Я хочу изменить статус «первый» на FALSE в исходном df.

Но когда я запускаю этот код:

library('dplyr')

df %<>%
  filter(ticker=='first') %>%
  mutate(
   status = F
  )

Я получаю свой оригинальный df только с первой строкой

> df
# A tibble: 1 x 2
  ticker status
1 first  FALSE 

Вместо:

> df
# A tibble: 3 x 2
  ticker status
1 first  FALSE 
2 second TRUE  
3 third  TRUE

использовать mutate(status = ifelse(ticker=='first', F, T))

RLave 22.05.2019 15:11

Другие решения здесь: stackoverflow.com/questions/27909000/…...

RLave 22.05.2019 15:13
df %>% mutate(status = replace(status, ticker == "first", FALSE)) или просто df %>% mutate(status = ticker != "first")
Ronak Shah 22.05.2019 15:14
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
1
3
531
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Используя функцию case_when:

library('tibble')

df <- tibble(
    ticker = c("first", "second", "third"),
    status = c(T,T,T)
)

library(tidyverse)

df %>% 
    mutate(status = case_when(
        ticker == "first" ~ F,
        TRUE ~ T
    ))

Это результат:

# A tibble: 3 x 3
  ticker status `case_when(ticker == "first" ~ F, TRUE ~ T)`
  <chr>  <lgl>  <lgl>                                       
1 first  TRUE   FALSE                                       
2 second TRUE   TRUE                                        
3 third  TRUE   TRUE 

Использование базы R

 within(df, status[ticker == "first"] <- FALSE )

используя базу R, это намного проще df[df$ticker=='first', 'status'] <- F

Oktu 23.05.2019 11:15

Конечно, но если у вас более длинные имена для вашего фрейма данных, его будет понятнее и проще использовать внутри. В этом весь смысл within.

Humpelstielzchen 23.05.2019 11:21

Другие вопросы по теме