0

私は、基本的にさまざまな都市 (約 150 都市) による毎日の使用状況データ (変数 X と Y としましょう) であるデータセットを使用しています。150 の都市から 3 つだけを選択して、特定の都市のみのデータのサブセットを作成しました。
次に、tapply都市ごとに行うと、3 つの都市の平均値が得られますが、データ セットに含まれていた他の 147 都市すべての NA も得られます。以下のコーディングを使用しています

df<-read.csv(...)
df_sub<-subset(df,df$City==1|df$City==3|df$City==19)
X_Breakdown<-tapply(X,df_sub$City, mean, na.rm=TRUE)
Print(X_Breakdown)

それは私に与えます:

                    City 1                         City 2 
                        15                             NA 
                    City 3                         City 4 
                        12                             NA 
                    City 5                         City 6 
                        NA                             NA 

アイデアが得られることを願っています。関心のある 3 つの都市のみを含むデータセットを取得したいと考えています。

変数のセットが R でエンコードされているようですが、これを修正する方法はありますか?

4

2 に答える 2

2

City要因である可能性が最も高い:

fac <- factor(1:2,levels=1:3)
tapply(1:2,fac,mean)
# 1  2  3 
# 1  2 NA 

使用droplevels:

tapply(1:2,droplevels(fac),mean)
#1 2 
#1 2
于 2013-06-25T16:40:49.853 に答える
0

df元のデータが(テストされていない)であると仮定します

@ローランドとして使用subset

df_sub<-subset(df, City %in% c(1,3,19))

の代わりにddplyfromを使用するplyr packagetapply

require(plyr)
X_Breakdown<-ddply(df_sub, .(City), summarize, meancity=mean(City))

注: サンプル データを提供していただけると助かります。

于 2013-06-25T16:53:39.277 に答える