Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 根据其他列上的某些条件,使用其他行中的值更新某些行中的值_R_Conditional Statements - Fatal编程技术网

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