如何创建月度数据?

时间:2014-04-05 00:16:47

标签: r

我在一个csv文件中有50年的这些数据。我想将数据按月分成12个csv文件。示例:一个文件将只包含所有50年的1月数据。

如何阅读/准备数据?我必须在R中完成。

YEAR    Month   level 
1900    1   1.11
1900    2   1.64
1900    3   1.35
1900    4   4.26
1900    5   4.91
1900    6   0.62
1900    7   5.6
1900    8   2.12
1900    9   5.99
1900    10  4.74
1900    11  1.69
1900    12  0.39

谢谢!

2 个答案:

答案 0 :(得分:2)

根据建议,您可以使用split然后递归保存选择其中一个循环结构/函数(例如,在write.csv循环中的for跟随)

# After having imported your csv file you'll have 
# a data.frame similar to this one

my.df <- data.frame(year = rep(1900:2000, each = 12),
                    month = rep(1:12, 101),
                    level = rnorm(101*12))

# then

df.spl <- split(my.df, my.df$month)

for (i in names(df.spl)) {
    write.csv(df.spl[[i]],
              sprintf("month_%s.csv", i),
              row.names = FALSE)
}

答案 1 :(得分:0)

这里的简单解决方案。

jan <- new[new[,2]==1,]

数据

new=read.table( header=TRUE, text="YEAR    Month   level 
1900    1   1.11
        1900    2   1.64
        1900    3   1.35
        1900    4   4.26
        1900    5   4.91
        1900    6   0.62
        1900    7   5.6
        1900    8   2.12
        1900    9   5.99
        1900    10  4.74
        1900    11  1.69
        1900    12  0.39")