在我下面的代码中,我想先去掉 Variable
我没有任何值(即 F 然后,我试图找到每一个 Variable
. 我试着用下面的代码,但我没有得到任何东西。
library(tidyverse)
set.seed(50)
DF <- data.frame(Days = 1:5, A = runif(5,0,3), S = runif(5,1,6), F = matrix(NA, 5,1), C = runif(5,2,4))
DF_1 <- gather(DF, -Days, key = "Variable", value = "Value")
DF_2 <- DF_1 %>%
filter(Variable == "NA") %>%
mutate(cumulative_Sum = cumsum(Value))
輸出
对于 Variable A
我应该得到类似下面的东西--类似于其他人
> A <- cumsum(DF$A)
> A
[1] 2.126181 3.439161 4.039176 6.340374 7.879859
按'Variable'分组后。 filter
淘汰全部 NA
'值',然后将NA替换为0后做'值'的累加和。
library(dplyr)
library(tidyr)
DF_1 %>%
group_by(Variable) %>%
filter(!all(is.na(Value))) %>%
mutate(Value = cumsum(replace_na(Value, 0)))
# A tibble: 15 x 3
# Groups: Variable [3]
# Days Variable Value
# <int> <chr> <dbl>
# 1 1 A 2.13
# 2 2 A 3.44
# 3 3 A 4.04
# 4 4 A 6.34
# 5 5 A 7.88
# 6 1 S 1.22
# 7 2 S 5.72
# 8 3 S 9.95
# 9 4 S 11.2
#10 5 S 12.7
#11 1 C 2.78
#12 2 C 5.32
#13 3 C 8.60
#14 4 C 10.8
#15 5 C 13.3
如果我们使用'宽'格式'DF',那么使用 mutate_at
DF %>%
mutate_at(-1, cumsum)