Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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 - Fatal编程技术网

如何根据r中的其他值更改数据帧中的值?

如何根据r中的其他值更改数据帧中的值?,r,R,我在数据帧中创建了一个新变量。我想用数据帧中不同变量的总和来填充这个变量,但只针对共享第三个值的观测值。此外,我希望随着共享的第三个值的增量增加,对我的新值进行累计计数。例如,这就是我现在拥有的: evyy PSS MTI 1966 5. 0 1966 10 0 1966 15 0 1967 4. 0 1967 7. 0 1968 2. 0 对于每个evyy,计算PSS值的sum,然后对每个值执行累积求和,并加入数据帧以获取原始数据 library(dplyr) #No need to hav

我在数据帧中创建了一个新变量。我想用数据帧中不同变量的总和来填充这个变量,但只针对共享第三个值的观测值。此外,我希望随着共享的第三个值的增量增加,对我的新值进行累计计数。例如,这就是我现在拥有的:

evyy PSS MTI 1966 5. 0 1966 10 0 1966 15 0 1967 4. 0 1967 7. 0 1968 2. 0
对于每个
evyy
,计算
PSS
值的
sum
,然后对每个值执行累积求和,并加入数据帧以获取原始数据

library(dplyr)

#No need to have an empty column beforehand.
old_df$MTI <- NULL

old_df %>%
  group_by(evyy) %>%
  summarise(MTI = sum(PSS)) %>%
  mutate(MTI = cumsum(MTI)) %>%
  left_join(old_df, by = 'evyy') -> new_df

new_df

#   evyy   MTI   PSS
#  <dbl> <int> <int>
#1  1966    30     5
#2  1966    30    10
#3  1966    30    15
#4  1967    41     4
#5  1967    41     7
#6  1968    43     2
数据

old_df <- structure(list(evyy = c(1966, 1966, 1966, 1967, 1967, 1968), 
    PSS = c(5L, 10L, 15L, 4L, 7L, 2L)), row.names = c(NA, -6L), 
    class = "data.frame")
old_df
old_df <- structure(list(evyy = c(1966, 1966, 1966, 1967, 1967, 1968), 
    PSS = c(5L, 10L, 15L, 4L, 7L, 2L)), row.names = c(NA, -6L), 
    class = "data.frame")