【发布时间】:2012-04-08 05:30:45
【问题描述】:
我正在尝试使用 plyr 和 approx 在观测值之间插入每年的 y 值。
不仅仅是每个国家/地区的 3 个观察值,
我想要 11 次观察 - 从 1985 年到 1995 年,每年一次。
这是一个样本数据集
country <- c("country a", "country a", "country a",
"country b", "country b", "country b",
"country c", "country c", "country c")
year <- c(1985, 1990, 1995,
1985, 1990, 1995,
1985, 1990, 1995)
y <- c(10, 12, 16,
NA, 23, 20,
12, 16, NA)
data <- data.frame(cbind(country,year,y))
The data set looks like this:
country year y
1 country a 1985 10
2 country a 1990 12
3 country a 1995 16
4 country b 1985 <NA>
5 country b 1990 23
6 country b 1995 20
7 country c 1985 12
8 country c 1990 16
9 country c 1995 <NA>
我可以在一个国家/地区使用大约数据的子集
a <- subset(data, data$country == "country a")
为 1985 年到 1995 年的每一年插入 y 值
attach(a)
a.int <- approx(year,y, xout = 1985:1995, method = "linear")
但是如何使用 plyr 插入每个国家/地区的数据?
我尝试过使用 dlply,但每年的输出值都是 NA
attach(data)
int <- dlply(data, .(country), function(i) approx(i$year, i$y, xout = 1985:1995,
method = "linear")$y )
如何同时使用 plyr 和 approx 来插入 y 的值?
另外,一旦我得到正确的 aprrox 输出(将是列表),我该如何重塑数据,使其成为原始的长格式?理想情况下,每个国家/地区的数据有 11 行,一列有 y 值。
【问题讨论】:
-
这是多少个问题?您可能会退后一步,尝试一次解决一个问题。