R mutate ifelse更新带有计算函数值的条件行

问题描述 投票:0回答:2

我使用R mutate来更新具有计算函数的特定(条件)行,即nrow(),以使用add(+)值进行更新。我不能使用apply(),因为我只需要为特定值更新一(1)行。

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

我从mutate impl得到以下错误:

mutate_impl(.data,dots)中的错误:列abberville_LA必须是长度96(行数)或一个,而不是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
r excel dplyr
2个回答
2
投票

1.你的问题不明确,所以我试图理解你想要的东西并回答这个问题

2.你正在使用$ mut in mutate,这不是必需的。运行以下代码应该可以解决问题。

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

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.