0
我有一個包含多年觀測數據的天氣數據集。我想要做的是創建某種循環,這將允許我將我的原始數據集一般地劃分爲給定年份的子數據集。使用dplyr迭代子設置數據幀?
讓我們調用我的數據集Weather_Data。下面是一些簡單的示例數據:
Weather_Data
Year GPS_Coord
2012 x1
2012 x2
2013 x3
2013 x4
2014 x5
2014 x6
2015 x7
2015 x8
在試圖建立某種形式的循環,我開始與一段代碼,例如這樣的:
Weather_Data_2012<-Weather_Data%>%filter(Year=="2012")
此代碼工作正常。當試圖然而,建立某種形式的循環,我試着做這樣的事情:
Year_list<-list()
Year_sub<-as.character(c(2012:2015))
for (i in 1:length(Year_sub)){
Year_list[[i]]<-Weather_Data%>%filter(Year=="i")
}
當我執行這個代碼,我結束了這樣的輸出:
A tibble: 0 × 11
因此,很明顯的循環沒有按預期工作!
這裏想什麼,我通過這個代碼來完成:
Year_list[[1]]
Year GPS_Coord
2012 x1
2012 x2
Year_list[[2]]
Year GPS_Coord
2013 x3
2013 x4
Year_list[[3]]
Year GPS_Coord
2014 x5
2014 x6
Year_list[[4]]
Year GPS_Coord
2015 x7
2015 x8
任何提示嗎?謝謝。
你需要做的'== Year_sub [我]而不是'==「我」'訪問你年份列表'Year_sub'的元素'i'。 – Lamia
你確定你需要創建一個這樣的列表嗎?我懷疑'group_by(Year)'可能會更簡單地達到相同的結果,這是對'dplyr'中每個子集執行分析的標準方法。 – Marius
我同意Marius--這是毫無意義的,因爲你已經使用了dplyr並且它具有'group_by'功能。另外,'split(Weather_Data,Weather_Data $ Year)'會給你你想要的結果,根本沒有包。 – thelatemail