2017-02-11 54 views
0

我试图将基于月份和年份的数据框分成几个较小的数据框。所以我用一个循环来提取满足月份和年份条件的数据帧(见下面的代码)。如何避免从R中的子集创建空的数据帧?

但是,在某些情况下,特定年份中的某些月份的数据不可用,并且通过使用下面的代码,它会创建空白数据框。 有没有办法避免它?

Weather.df = read.table(file = "D:/Program Files/R Projects/Weather_Pattern/Weather.txt", header = TRUE, sep = ",") 

for (YEAR in min(Weather.df$year):max(Weather.df$year)){ 
    for (MONTH in month.abb){ 
     temp.df = subset(Weather.df, month == MONHT & year == YEAR) 
     assign(paste(YEAR,MONTH,"luna",sep="."), temp.df) 
    } 
} 
+0

您可以提供一个可重复比如http://stackoverflow.com/questions/5963269/how-to-make-a -great-r-reproducible-example – lizzie

回答

0

你可以测试,如果数据帧有任何行:

if(nrow(temp.df) > 0) { 
    # do assignment 
} 
+0

谢谢Neal,这是一个高效的解决方案! – Melon