我有一个类似这样的数据框:
但这会为它们提供相同的答案。
此外,是否有一种方法可以通过索引而不是引用x1、x2...x8列来进行操作,类似于:
set.seed(123)
如果我想为一个向量生成均值和上下95%的置信区间,我可以这样做:
x <- rnorm(20)
quantile(x, probs = 0.500) # mean
quantile(x, probs = 0.025) # lower
quantile(x, probs = 0.975) # upper bound
我有一个数据框
df <- data.frame(loc = rep(1:2, each = 4),
year = rep(1980:1983, times = 2),
x1 = rnorm(8), x2 = rnorm(8), x3 = rnorm(8), x4 = rnorm(8),
x5 = rnorm(8), x6 = rnorm(8), x7 = rnorm(8), x8 = rnorm(8))
对于每个位置和年份,我想使用x1到x8找到中位数、下界和上界。
df %>% group_by(loc, year) %>%
dplyr::summarise(mean.x = quantile(x1, x2, x3, x4, x5, x6 , x7, x8, probs = 0.500),
lower.x = quantile(x1, x2, x3, x4, x5, x6 , x7, x8, probs = 0.025),
upper.x = quantile(x1, x2, x3, x4, x5, x6 , x7, x8, probs = 0.975))
但这会为它们提供相同的答案。
# A tibble: 8 x 5
# Groups: loc [?]
loc year mean.x lower.x upper.x
<int> <int> <dbl> <dbl> <dbl>
1 1 1980 -1.07 -1.07 -1.07
2 1 1981 -0.218 -0.218 -0.218
3 1 1982 -1.03 -1.03 -1.03
4 1 1983 -0.729 -0.729 -0.729
5 2 1980 -0.625 -0.625 -0.625
6 2 1981 -1.69 -1.69 -1.69
7 2 1982 0.838 0.838 0.838
8 2 1983 0.153 0.153 0.153
此外,是否有一种方法可以通过索引而不是引用x1、x2...x8列来进行操作,类似于:
3:ncol(df)