R 根据其他列上的某些条件,使用其他行中的值更新某些行中的值
我有一个巨大的数据集,我想用另一行(即,有R 根据其他列上的某些条件,使用其他行中的值更新某些行中的值,r,conditional-statements,R,Conditional Statements,我有一个巨大的数据集,我想用另一行(即,有场景==“D”)中的另一个单元格中的值(即,列结果)更新其中一些行(即,有场景==“C”)中的值,条件是其他列具有相同的值(即,年份和国家) df您可以使用replace有条件地替换year和country中每组的值 library(dplyr) df %>% group_by(year, country) %>% mutate(outcome = replace(outcome, scenario == 'D',
场景==“D”
)中的另一个单元格中的值(即,列结果
)更新其中一些行(即,有场景==“C”
)中的值,条件是其他列具有相同的值(即,年份
和国家
)
df您可以使用replace
有条件地替换year
和country
中每组的值
library(dplyr)
df %>%
group_by(year, country) %>%
mutate(outcome = replace(outcome, scenario == 'D',
outcome[match('C', scenario)])) %>%
ungroup
# year country scenario outcome
# <chr> <chr> <chr> <chr>
#1 2000 A C 1
#2 2000 A D 1
#3 2001 B C 3
#4 2001 B D 3
库(dplyr)
df%>%
按年份、国家划分的组别%>%
突变(结果=替换(结果,场景='D',
结果[匹配('C',情景)])%>%
解组
#年份国家情景结果
#
#1 2000 A C 1
#2000年A月2日D月1日
#3 2001 B C 3
#4 2001 B D 3
您可以使用replace
有条件地替换year
和country
中每组的值
library(dplyr)
df %>%
group_by(year, country) %>%
mutate(outcome = replace(outcome, scenario == 'D',
outcome[match('C', scenario)])) %>%
ungroup
# year country scenario outcome
# <chr> <chr> <chr> <chr>
#1 2000 A C 1
#2 2000 A D 1
#3 2001 B C 3
#4 2001 B D 3
库(dplyr)
df%>%
按年份、国家划分的组别%>%
突变(结果=替换(结果,场景='D',
结果[匹配('C',情景)])%>%
解组
#年份国家情景结果
#
#1 2000 A C 1
#2000年A月2日D月1日
#3 2001 B C 3
#4 2001 B D 3
library(dplyr)
df %>%
group_by(year, country) %>%
mutate(outcome = replace(outcome, scenario == 'D',
outcome[match('C', scenario)])) %>%
ungroup
# year country scenario outcome
# <chr> <chr> <chr> <chr>
#1 2000 A C 1
#2 2000 A D 1
#3 2001 B C 3
#4 2001 B D 3