如何使用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 )