用计算的函数值对ifelse更新条件行进行变异

时间:2019-04-13 06:04:24

标签: r excel dplyr

我正在使用R mutate通过计算的函数nrow()更新特定(条件)行,以添加(+)值进行更新。我不能使用apply(),因为我只需要为特定值更新一(1)行。

例如,当查找Year == 2007和Month == 06行时,添加Incoming.Exam + nrow(df3),这样该行将为698 + nrow值。

我从mutate impl中收到以下错误:

  

mutate_impl(.data,点)中的错误:     abberville_LA列的长度必须为96(行数)或1,而不是4

    abberville_LA %>% 
  mutate(abberville_LA, Incoming.Exam = ifelse(abberville_LA$Year == 2007 & abberville_LA$Month == 06, abberville_LA, Incoming.Exam + nrow(abberville_df3), abberville_LA$Incoming.Exam))

    head(abberville_LA, 3)
  Incoming.Exam Year Month    ts_date
1           698 2007     6    2007-06-01
2           NaN 2010     6    2010-06-01

2 个答案:

答案 0 :(得分:2)

1。您的问题尚不清楚,所以我试图理解您想要的内容并回答问题

2。您在不需要的mutate中使用$。运行以下代码应该可以解决问题。

abberville_LA %>% 
  mutate(Incoming.Exam = ifelse(Year == '2007' & Month == '06', Incoming.Exam + nrow(abberville_df3),Incoming.Exam))

答案 1 :(得分:0)

问题出在库dplyr。我发现我有一个稍旧的版本,需要更新以解决“ mutate_impl(.data,点)中的错误:评估错误:从rlang 0.3.0起,as_dictionary()已失效。请改用as_data_pronoun()”错误消息,指出应该使用dplyr的另一个版本。这修复了该论坛上作为答案提供的代码。