【发布时间】:2019-07-16 16:33:41
【问题描述】:
我正在尝试找到跨越 11,000 多个观测值的各个国家的阿特金森指数度量。对于每个特定的观察,我都有十分位数的度量,我可以创建一个单独的向量 ex。 c(d1, d2,...d10) 为每个单独的观察结果计算阿特金森指数,但我确信有一种更快的方法可以在 11,000 个观察结果中执行此操作。有没有什么可能的方法可以指导 R 在所有 11,000 个观察值中创建一个唯一向量,这些观察值使用每个单独观察特定的十分位数?
我对用 R 进行编码还是比较陌生,但我试图看看我是否可以创建某种循环,该循环将返回一个向量,该向量与每个单独观察对应的十分位数有关。
id2 <- c(3.86, 5.29, 6.38, 7.32, 8.38, 9.35, 10.82, 12.47, 14.90, 21.22)
atkinson(id2, epsilon = 1)
[1] 0.1079504
这是我输入时得到的:
dput(head(data))
structure(list(id = c(1, 2, 3, 4, 5, 6), country = c("Afghanistan",
"Albania", "Albania", "Albania", "Albania", "Albania"), c3 = c("AFG",
"ALB", "ALB", "ALB", "ALB", "ALB"), d1 = c(NA, 0, 3.49, 3.48,
3.73, 3.66), d2 = c(NA, 5.29, 4.86, 4.92, 5.14, 5.19), d3 = c(NA,
6.38, 5.84, 5.98, 6.09, 6.14), d4 = c(NA, 7.32, 6.74, 6.92, 6.98,
7.03), d5 = c(NA, 8.38, 7.65, 7.99, 7.91, 8.08), d6 = c(NA, 9.35,
8.84, 9.04, 8.92, 9.26), d7 = c(NA, 10.82, 10.23, 10.37, 10.3,
10.52), d8 = c(NA, 12.47, 11.98, 12.13, 11.93, 12.29), d9 = c(NA,
14.9, 14.93, 14.83, 14.54, 14.89), d10 = c(NA, 21.22, 25.44,
24.34, 24.46, 22.93)), row.names = c(NA, -6L), class = c("tbl_df",
"tbl", "data.frame"))
我可以这样做超过 11,000 次,但显然这需要一段时间,有没有办法构造 R(一个循环?)为每个单独的观察做一些沿着这条线做的事情?
【问题讨论】:
-
欢迎来到 StackOverflow。如果您 a) 标记 r 和 b) 指向易于掌握的阿特金森指数计算描述的超链接,您将更有机会获得有用的答案。
-
谢谢@parfait,我已经修改了帖子。