我有以下数据框(由str(dataframe)
显示)我需要做的是将P1与PJ除以相应的总死亡率,并用计算的比例替换P1到PJ值。我想我必须使用某种应用功能。但是我对R来说太新了,不能超越它。
data.frame': 26 obs. of 9 variables:
$ year : int 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 ...
$ P1 : num 0.0182 0.0143 0.0138 0.0118 0.0109 ...
$ P2 : num 0.0447 0.0348 0.0335 0.0285 0.0267 ...
$ P3 : num 0.1128 0.0888 0.0872 0.0754 0.0718 ...
$ P4 : num 0.278 0.274 0.307 0.296 0.296 ...
$ P5 : num 1.67 1.42 1.42 1.23 1.19 ...
$ PJ : num 46.7 41.1 40.6 36.6 35.1 ...
$ TotalMortality: num 48.8 42.9 42.5 38.3 36.7 ...
$ GDP : int 23895 24196 24368 25321 26372 27732 29233 30406 31847 33203 ...
PS。 View(df)给出以下输出 View(df)
答案 0 :(得分:0)
我不确定我到底是什么意思,将P分为PJ和相应的总死亡率"
如果您想为新数据添加新列,可以尝试以下方法:
df$NewColumn <- df$P1 / df$TotalMortality
对于从P1到PJ的每一列,都需要重复这一过程。
如果您肯定想要覆盖数据,那么您可以
df$P1 <- df$P1 / df$TotalMortality
再次需要重复
答案 1 :(得分:0)
你不需要任何特别的东西。只需将列与总数分开即可。
$('#demo').daterangepicker({
"linkedCalendars": false,
timePicker: true,
dateLimit: { hours: 24 },
});
答案 2 :(得分:0)
我认为@RomanLuštrik的答案就是你想要的。如果您对替代方法感兴趣,也可以使用dplyr::mutate_at
之类的tidyverse
。
library(tidyverse)
x <- tibble(year = 1990:1993,
P1 = 1:4,
P2 = 9:12,
PJ = 13:16,
Total_Mortality = 2:5)
x %>% mutate_at(vars(P1:PJ), funs(./Total_Mortality))
#> # A tibble: 4 x 5
#> year P1 P2 PJ Total_Mortality
#> <int> <dbl> <dbl> <dbl> <int>
#> 1 1990 0.5000000 4.500000 6.500000 2
#> 2 1991 0.6666667 3.333333 4.666667 3
#> 3 1992 0.7500000 2.750000 3.750000 4
#> 4 1993 0.8000000 2.400000 3.200000 5