如何使用dplyr更改原始数据帧的元素

如何使用dplyr更改原始数据帧的元素,r,dplyr,R,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 而不是: > df # A tibble: 3 x 2 ticker status

我有一张桌子:

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  
而不是:

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

在时使用函数
case\u:

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
    ))
library('tibble')
df%
变异(状态=情况)(
股票代码==“第一”~F,
真~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 
#一个tible:3 x 3
ticker status`case\u when(ticker==“first”~F,TRUE~T)`
1第一个是真是假
2秒正确-正确
三分之一正确
使用基本R

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


在(df,status[ticker==“first”]中使用
mutate(status=ifelse(ticker='first',F,T))
这里的其他解决方案:…
df%>%mutate(status=replace(status,ticker='first',FALSE))
或者仅仅
df%>%mutation(status=ticker!=“first”)
使用基本R更简单的是df[df$ticker='first',''status']当然可以,但是如果您的数据帧有更长的名称,那么在内部使用会更清晰、更容易。这就是
内部
的全部要点。
# 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 
 within(df, status[ticker == "first"] <- FALSE )