【发布时间】:2020-10-04 08:50:35
【问题描述】:
我将与上述问题相对应的 2 个数据框简化如下:
ss <- structure(list(country = structure(c(1L, 2L, 3L, 4L, 5L, 6L,
7L, 8L, 9L, 10L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 1L,
2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L), .Label = c("a", "b", "c",
"d", "e", "f", "g", "h", "k", "v"), class = "factor"), year = c(1961L,
1962L, 1963L, 1961L, 1962L, 1963L, 1961L, 1962L, 1963L, 1961L,
1962L, 1963L, 1961L, 1962L, 1963L, 1961L, 1962L, 1963L, 1961L,
1962L, 1963L, 1961L, 1962L, 1963L, 1961L, 1962L, 1963L, 1961L,
1962L, 1963L), x = c(19L, 4L, 3L, 23L, 24L, 16L, 28L, 9L, 29L,
20L, 14L, 21L, 30L, 1L, 12L, 17L, 25L, 26L, 13L, 8L, 2L, 7L,
10L, 11L, 6L, 22L, 27L, 5L, 15L, 18L), y = c(23L, 20L, 28L, 7L,
4L, 25L, 5L, 8L, 10L, 13L, 9L, 1L, 21L, 11L, 26L, 16L, 27L, 2L,
29L, 24L, 3L, 15L, 6L, 19L, 14L, 22L, 12L, 18L, 17L, 30L), z = c(22L,
4L, 23L, 16L, 29L, 14L, 11L, 13L, 27L, 26L, 5L, 12L, 2L, 9L,
10L, 25L, 7L, 21L, 6L, 20L, 3L, 30L, 18L, 8L, 1L, 24L, 17L, 15L,
28L, 19L)), class = "data.frame", row.names = c(NA, -30L))
和
zz <- structure(list(country = structure(c(1L, 1L, 1L), .Label = "w", class = "factor"),
year = 1961:1963, x = c(2L, 1L, 3L), y = c(3L, 1L, 2L), z = 1:3), class = "data.frame", row.names = c(NA,
-3L))
数据框ss 代表来自 10 个国家/地区的 3 年数据。并且,数据框zz 代表相应年份的世界数据。
是否有任何方法可以应用诸如ss(for each each group as country)/zz 之类的条件,以便可以提取每个国家/地区的价值作为与世界数据的比率。我的意思是前两列也应保留为ss。
我们能否避免使用dplyr 和tidverse 重塑数据,这只会增加更多的编码行。
谢谢。
【问题讨论】: