分割多列的數據幀我有超過4000列的數據幀。列顯示庫存數據並且缺少值。數據框有各種缺失值,因爲數據框中有公司目前在證券交易所上市/交易,以及過去在證券交易所交易過的公司。如果公司A有2000年的收盤價格數據,但公司B可能沒有2000年的任何數據,因爲B公司在2000年未進行交易/上市,因此缺少價值。這使得我的數據框非常複雜,並且由於缺少數據而難以運行諸如自迴歸(Autoregressive)之類的模型。所以,我想根據它們之間的常見缺失值(列)拆分/子集這個數據框,然後刪除這些NAs並運行模型。我說明如下如何子集和/受可用值的公共數中的R
df
DATE A B C D E F G H
31/12/1999 79.5 NA NA 36.7 3 6 NA NA
03/01/2000 79.5 NA NA 36.7 3 6 NA NA
04/01/2000 79.5 NA 325 36.7 3 6 961 3081.9
05/01/2000 79.5 NA 322.5 38.8 3 6 945 2524.7
06/01/2000 79.5 NA 327.5 20.3 3 6 952 3272.3
07/01/2000 79.5 NA 327.5 15.6 3 6 941 2102.9
10/01/2000 79.5 7 327.5 5.4 3 6 946 2901.5
11/01/2000 79.5 7 327.5 15 3 6 888 9442.5
12/01/2000 79.5 7 331.5 9.3 3 6 870 7865.8
13/01/2000 79.5 7 334 29.1 3 6 853 7742.1
我想有dataframes如下數據和所需的輸出:
d1<-df
DATE A D E F
31/12/1999 79.5 36.7 3 6
03/01/2000 79.5 36.7 3 6
04/01/2000 79.5 36.7 3 6
05/01/2000 79.5 38.8 3 6
06/01/2000 79.5 20.3 3 6
07/01/2000 79.5 15.6 3 6
10/01/2000 79.5 5.4 3 6
11/01/2000 79.5 15 3 6
12/01/2000 79.5 9.3 3 6
13/01/2000 79.5 29.1 3 6
df2<- df
DATE C G H
31/12/1999 NA NA NA
03/01/2000 NA NA NA
04/01/2000 325 961 3081.9
05/01/2000 322.5 945 2524.7
06/01/2000 327.5 952 3272.3
07/01/2000 327.5 941 2102.9
10/01/2000 327.5 946 2901.5
11/01/2000 327.5 888 9442.5
12/01/2000 331.5 870 7865.8
13/01/2000 334 853 7742.1
df3 <- df
DATE B
31/12/1999 NA
03/01/2000 NA
04/01/2000 NA
05/01/2000 NA
06/01/2000 NA
07/01/2000 NA
10/01/2000 7
11/01/2000 7
12/01/2000 7
13/01/2000 7
我會很感激你在這方面的幫助。
一個假設你最初把這個'data.frame'從其他數據源首先放在一起。也許你應該重新設計這個過程而重新設計這個過程。 –
這就是說,根據你的描述,這聽起來像每列都採用以下形式:'c(rep(NA,n1),,rep(NA,n2))'其中'n1'和'n2'可以是任意長度> = 0.'apply(df,2,function(j)range(is.na(j)))'應該給你'n1','n2'的邊界,這應該允許你智能地做子集 –
我有從一個來源獲得我的數據集,但這是我樣本中最複雜的部分,各樣公司在樣本期間已被列入和摘牌,我必須對其中的每一個進行說明。 – Aquarius