CSVの値をRでヒストグラムにする

  • 2
    いいね
  • 1
    コメント
この記事は最終更新日から1年以上が経過しています。

データの例

data.csv
35.724441,139.684798,1967,0
35.759832,139.872587,1953,0
35.591300,139.730151,1960,0
35.746172,139.433474,1955,0
35.762438,139.773832,1968,0
35.713675,139.422742,2001,0
35.689125,139.540064,2000,0
35.586835,139.427465,1954,0

このCSVにはヘッダーが無いので header=F にして、ラベルをつけてもらう.

data <- read.csv('data.csv', header=F, sep=",")

summary(data)
       V1              V2              V3             V4   
 Min.   :35.51   Min.   :139.4   Min.   :1950   Min.   :0  
 1st Qu.:35.64   1st Qu.:139.5   1st Qu.:1965   1st Qu.:0  
 Median :35.69   Median :139.7   Median :1983   Median :0  
 Mean   :35.68   Mean   :139.6   Mean   :1982   Mean   :0  
 3rd Qu.:35.74   3rd Qu.:139.8   3rd Qu.:1999   3rd Qu.:0  
 Max.   :35.81   Max.   :139.9   Max.   :2014   Max.   :0 

hist(data[2])
以下にエラー hist.default(data[2]) :  'x' は数値でなければなりません 

クラスと確認せよとのこと.

sapply(data, class)
       V1        V2        V3        V4 
"numeric" "numeric" "integer" "integer" 

よさそう。
そもそも値のアクセスの仕方が違ったみたい. histにはベクトルを渡す必要がある
$で値にアクセスする

data$V3
  [1] 1953 1960 1955 1968 2001 2000 1954 1991 1974 1952 1996 1985 1975 1952 2011
 [16] 1975 1960 1969 1951 1995 1958 1973 1974 2009 2005 2008 1956 1971 1962 1974


または、このようなアクセスも可能 
data[['V3']]
  [1] 1953 1960 1955 1968 2001 2000 1954 1991 1974 1952 1996 1985 1975 1952 2011
 [16] 1975 1960 1969 1951 1995 1958 1973 1974 2009 2005 2008 1956 1971 1962 1974

これだと配列が戻ってきている
data[3]
    X1967
1    1953
2    1960
3    1955
4    1968
5    2001

よって以下のように値を渡せばよい

hist(data$V3)

刻みを細かく、色をつける場合は

hist(data$V3, breaks=65, col="blue")