R 条件中的变异

her*_*ubt 7 r dplyr

我有一个df包含列payment_type和的数据框payment_amount

我想做一个条件变异,如果payment_type是“tpt”或“trt”,它应该进行payment_amount5 次。

df$payment_amount<-df%>%select(payment_amount)%>%filter(payment_type=='tpt' | payment_type=='trt')%>%mutate(payment_amount=payment_amount*100)
Run Code Online (Sandbox Code Playgroud)

但这不起作用。TIA

Par*_*ark 4

尝试

df %>%
  mutate(pament_amount = case_when(
    payment_type == "tpt" | payment_type == "trt" ~ 5 * payment_amount,
    TRUE ~ payment_amount
  ))
Run Code Online (Sandbox Code Playgroud)

基于问题的方法

df$payment_amount[(df$payment_type=='tpt' | df$payment_type == "trt")]<- df %>%
  filter(payment_type=='tpt' | payment_type=='trt')%>%
  select(payment_amount)%>%
  mutate(payment_amount=payment_amount*100) %>% pull
Run Code Online (Sandbox Code Playgroud)