总 newb R 问题,但这里是:假设我想创建一个包含两列的数据框,一列包含一个范围内的所有年份,另一列包含每年的每个月。当我完成后,我应该有这个:
year month
1990 1
1990 2
1990 3
等等。对于 cbind 来说,这似乎是一项非常明显的工作,将一个范围变成一个列,然后重复,每年生成 12 个实例。这很有效,但仅适用于该范围内的偶数年。因此,例如:
df <- data.frame(cbind(year=rep(c(1990:2000), 12)))
工作正常。这也是如此:
df <- data.frame(cbind(year=rep(c(1990:2000), 12), month=c(1:12)))
但这会产生明显的废话:
df <- data.frame(cbind(year=rep(c(1990:2001), 12), month=c(1:12)))
正如您所期望的那样,第一行代码在该范围内每年生成 12 个实例;第二行产生所需的结果。第三行每年生成 12 个实例,其中每年只有一个月数。因此:
year month
1990 1
1990 1
1990 1
有没有办法解决这个问题,不需要总是增加一年并在以后修剪它?