LoginSignup
4
3

More than 5 years have passed since last update.

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

Posted at

データの例

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")
4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3