1

私の目的は、ある特定の店舗の存在と、それらの店舗を見つけることができる人口密度との間に関連性があるかどうかをピボット テーブルで比較することです。そのために、お店がある地域とない地域の 600 の例を含む CSV ファイルを用意しました。これは 600 行と 2 つの列を持つファイルです: 1/ 1 つの地域の人口密度を表す数字、および 2/ この地域のこの特定の店の数量 (0、1 または 2)。

ピボット テーブルを作成するには、密度をそれぞれ 60 行の 10 グループにグループ化する必要があります (最初のグループでは 60 の大きな密度から、最後のグループでは 60 の小さな密度まで)。そうすれば、密集度が低いか高いかに関わらず、どのくらいの店舗が建てられているかが簡単にわかります。私は理解できますか?:)

本当に難しいことは何もないと思います。しかし、そのために大丈夫な方法(およびパッケージ)がいくつかあります...私は少し迷っています。

私の主な問題:変数をそれぞれ60行の10のグループにグループ化する最も簡単な方法はどれですか? 私は cut()/ cut2()と hist() を試しましたが成功しませんでした。


たとえば(ジャスティンが尋ねたように)。カット()を使用:

data <- read.csv("data.csv", sep = ";")
groups <- cut(as.numeric(data$densit_pop2), breaks=10)
summary(groups)
(0.492,51.4]   (51.4,102]    (102,153]    (153,204]    (204,255]    (255,306] 
      53           53           52           52           52           54 
(306,357]    (357,408]    (408,459]    (459,510] 
      52           59           53           54 

わかりました。確かに「グループ」には、ほぼ同じ行数の 10 個のグループが含まれています。しかし、間隔で示されている特定の値は、私には意味がありません。密度列の最初の行は次のとおりです (徐々にソートされます)。

> head(data$densit_pop2)
[1] 14,9 16,7 17,3 18,3 20,2 20,5
509 Levels: 100 1013,2 102,4 102,6 10328 103,6 10375 10396,8 104,2 ... 99,9

つまり、最初のグループを見てください。14.9 が最小値であるのに、なぜ 0.492 なのですか? そして、最初の行と値 51.4 の間の行数を手動で数えると、76 行になります。53 行と表示されるのはなぜですか? データフレームが最低から最高に正しくランク付けされていることを正確に示します。

私は確かに何かが恋しいです...しかし、何ですか?

4

2 に答える 2

1

データへの対応: データ入力のエラーを修正する必要があります。

data$densit_pop3 <- as.numeric( 
                       sub('\\,', '.',  
                       as.character(data$densit_pop2)))

それで。これらの行に沿ったもの (これは、テキスト ファイルからのデータの読み込みに関する実際の問題ではないと仮定します):

with(dfrm, by(dens, factor(shops), summary) )

出力の例として、次のようになります。

with(BNP, by( proBNP.A, Sex, summary))

Sex: Female
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
    5.0    55.7   103.6   167.9   193.6  5488.0 3094899 
--------------------------------------------------------------------- 
Sex: Male
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
      5      30      63     133     129    5651 4013760 

これをプロットして密度の密度を調べようとしている場合 (この場合、これは妥当な要求のように思えます)、次のようにしてみてください。

require(lattice)
densityplot( ~dens|shops, data=dfrm)

(そして、これらの「ピボット テーブル」と呼ぶのはやめてください。これは Excel の集計戦略であり、標準的な統計または数学の専門用語で目的の出力を説明することを実際に学ぶ必要があります。)

于 2013-09-11T02:31:19.013 に答える