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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R mutate ifelse更新带有计算函数值的条件行相关的知识,希望对你有一定的参考价值。

我使用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
答案

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

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

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

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

以上是关于R mutate ifelse更新带有计算函数值的条件行的主要内容,如果未能解决你的问题,请参考以下文章

R语言dplyr包使用dplyr函数使用group_by函数summarise函数和mutate函数计算分组占比实战

ifelse 按 r 中的列位置 - 列名未知 [重复]

R语言初步-数据转换-4.mutate()函数

R语言用户自定义函数的语法结构编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等)编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据)应用自定函数

R语言用户自定义函数的语法结构编写自定义统计值计算函数(使用ifelse结构计算均值和标准差等)编写自定义日期格式化(format)函数(switch函数使用不同分枝格式化日期数据)应用自定函数

计算并向R中的数据框添加新变量