.csvファイルに180か国で構成されるパネルデータがあり、180か国のサブセットを作成して、サブセットに基づいて回帰を実行したいと思います。
これが私のデータセットのスクリーンショットです:
サブセット関数をいじっていますが、正しく機能しないようです。
最終的には、他の列を同じに保ちながら、たとえば「アルバニア」、「米国」だけを含むサブセットを作成するにはどうすればよいですか。
提案ありがとうございます。
これは非常に基本的なサブセットであり、SOおよび入門マニュアルでいくつかの回答を見つけることができます。
csvファイルを「df」という名前のオブジェクトとして読み込んだとすると、次のような処理が実行されます。
df[df$country %in% c("United States", "Albania"), ]
将来:
dput(head(yourdata))
代わりに次のようなものを使用してください。subset
がうまくいかなかった場合は、他の人がトラブルシューティングするのを助けるためにあなたが何をしたかを示すことが役に立ちます。サンプルデータ:
set.seed(1)
df <- data.frame(country = sample(letters[1:5], 15, replace = TRUE),
somerandomvalue = rnorm(15),
anotherrandomvalue = rnorm(15))
「国」列に関するいくつかの要約データ。5つの固有の国があり、全体で15のケース(行)があることを示しています。
> summary(df$country)
a b c d e
2 5 1 4 3
サブセットだけを取る:
> df[df$country %in% c("a", "b"), ]
country somerandomvalue anotherrandomvalue
1 b -0.005767173 0.80418951
2 b 2.404653389 -0.05710677
5 b -1.147657009 -0.69095384
10 a -0.891921127 -0.43331032
11 b 0.435683299 -0.64947165
12 a -1.237538422 0.72675075
14 b 0.377395646 0.99216037
または、サブセット関数を使用します。
subset(df, country %in% c("a", "b"))
subset
関数を使ってみてください
subset(YourData, country=c('Albania', 'United States'))
詳細については、を参照?subset
してください。
例:(@RomanLuštrikとAnandaのコメントに感謝します)
> Data <- data.frame(Country=rep(letters[1:6], each=3), random=rnorm(18))
> subset(Data, Country %in% c('a','b'))
Country random
1 a -1.02159357
2 a -0.88256998
3 a -0.24138579
4 b 0.35844584
5 b 0.05288194
6 b -1.09724481
> subset(Data, Country == "a" | Country == "b")
Country random
1 a -1.02159357
2 a -0.88256998
3 a -0.24138579
4 b 0.35844584
5 b 0.05288194
6 b -1.09724481
ここでは、質問を説明するための再現可能な優れた例を作成する方法を学習します。