2017-02-11 10 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-воспроизводимый пример – lizzie

ответ

0

Вы можете проверить, если кадр данных имеет какие-либо строки:

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

Спасибо Neal, это одно эффективное решение! – Melon