2017年10月21日土曜日

[R]2変量の散布図

# 2変量の散布図
png('test3.png')
plot(cars)
dev.off()

# 相関係数Rを求める
r = cor(cars$speed, cars$dist)
r

# 相関かどうかの検定
cor.test(cars$speed, cars$dist)
実行結果
$ Rscript test3.R
null device
  1
[1] 0.8068949

  Pearson's product-moment correlation

data: cars$speed and cars$dist
t = 9.464, df = 48, p-value = 1.49e-12
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.6816422 0.8862036
sample estimates:
  cor
0.8068949
Pearson's product-moment correlationの内容
ParameterDescription
dfDegrees of Freedom
p-valuep値
95 percent confidence interval95%信頼区間
出力結果

[R]単回帰分析

# 2変量の散布図
png('test1-0.png')
plot(cars)
dev.off()

# 単回帰分析(simple linear regression analysis)を行う
# lm: linear model
result <- lm(dist ~ speed, data=cars)
summary(result)

# 結果の直線を描画する
# abline(a, b): 切片a, 傾きb(y=a+bx)の直線を描く
# abline(result): resultにlm()の結果が入っている場合は回帰直線を描く
png('test1-1.png')
plot(cars)
abline(result, col="red")
dev.off()
実行結果
$ Rscript test1.R
null device
  1

Call:
lm(formula = dist ~ speed, data = cars)

Residuals:
  Min 1Q Median 3Q Max
-29.069 -9.525 -2.272 9.215 43.201

Coefficients:
  Estimate Std. Error t value Pr(>|t|)
(Intercept) -17.5791 6.7584 -2.601 0.0123 *
speed 3.9324 0.4155 9.464 1.49e-12 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 15.38 on 48 degrees of freedom
Multiple R-squared: 0.6511, Adjusted R-squared: 0.6438
F-statistic: 89.57 on 1 and 48 DF, p-value: 1.49e-12

null device
  1
出力結果
test1-0.png

test1-1.png

[R]箱ひげ図

# 箱ひげ図を描く
x <- c(10, 20, 30, 40, 50, 30, 20)

png('test0.png')
boxplot(x)
dev.off()
出力結果

2017年9月6日水曜日

[Python][MongoDB]PyMongo:データの挿入

test4.py
#-*- coding: utf-8 -*-
import pymongo
import pytz

#######################################################################
# Main function
#######################################################################
if __name__ == '__main__':
# MongoDBに接続するためのclientを作成する
client = pymongo.MongoClient()

# Databaseに接続する
db = client.test

# Collectionを取得する
collection = db.tbl1

# insert()
data = {
'message': 'thank you',
'value' : 30
}
id = collection.insert(data)
print('id=%s' % (id))

print('\n')
print('find()')
documents = collection.find({'_id':id})
for doc in documents:
#print(doc)
print('%s\t%s\t%d' % (doc['_id'], doc['message'], doc['value']))
実行結果
$ python test4.py
id=59af9cdce138234fdf70d696

find()
59af9cdce138234fdf70d696 thank you 30

[Python][MongoDB]PyMongo

PyMongoはPythonからMongDBを使うためのAPI

インストール

# yum install python-pymongo

データの表示

#-*- coding: utf-8 -*-
import pymongo
import pytz

#######################################################################
# Main function
#######################################################################
if __name__ == '__main__':
# MongoDBに接続するためのclientを作成する
client = pymongo.MongoClient()

# Databaseに接続する
db = client.test

# Collectionを取得する
collection = db.tbl1

# find()
print('find()')
documents = collection.find()
for doc in documents:
#print(doc)
print('%s\t%d' % (doc['message'], doc['value']))

print('\n')
print("find({'message':'hello'})")
documents = collection.find({'message':'hello'})
print('count=%d' % (documents.count()))
for doc in documents:
#print(doc)
print('%s\t%d' % (doc['message'], doc['value']))

print('\n')
print("find({'value':{'$gte':10}})")
documents = collection.find({'value':{'$gte':10}})
print('count=%d' % (documents.count()))
for doc in documents:
#print(doc)
print('%s\t%d' % (doc['message'], doc['value']))
実行結果
$ python test3.py
find()
hello 10
goodbye 25

find({'message':'hello'})
count=1
hello 10

find({'value':{'$gte':10}})
count=2
hello 10
goodbye 25

[Python]jsonモジュール

test0.py
#-*- coding: utf-8 -*-
import json

#######################################################################
# Main function
#######################################################################
if __name__ == '__main__':
# jsonファイル(辞書型)の読み込み
print('=== read test0_dict_read.txt ===')
f = open('test0_dict_read.txt', 'r')
json_dict = json.load(f)
f.close()

print(json_dict)
print(json_dict['book1'])
print(json_dict['book1']["title"])
print(json.dumps(json_dict, indent=4))

# 辞書型をjsonファイルへ書き出し
print('=== write test0_dict_write.txt ===')
json_dict = {}
data = {}
data['name'] = 'tokyo'
data['temperature_high'] = 37.7
data['temperature_low'] = -2.6
json_dict["prefecture_1"] = data

print(json.dumps(json_dict, indent=4))

f = open('test0_dict_write.txt', 'w')
json.dump(json_dict, f)
f.close()

# jsonファイル(配列型)の読み込み
print('=== read test0_list_read.txt ===')
f = open('test0_list_read.txt', 'r')
json_list = json.load(f)
f.close()

print(json_list)
print(json_list[0])
print(json_list[0]['title'])
print(json.dumps(json_list, indent=4))

# 配列型をjsonファイルへ書き出し
print('=== write test0_list_write.txt ===')
json_list = []
data = {}
data['name'] = 'tokyo'
data['temperature_high'] = 37.7
data['temperature_low'] = -2.6
json_list.append(data)

data = {}
data['name'] = 'naha'
data['temperature_high'] = 33.9
data['temperature_low'] = 6.1
json_list.append(data)

print(json.dumps(json_list, indent=4))

f = open('test0_list_write.txt', 'w')
json.dump(json_list, f)
f.close()
test0_dict_read.txt
{
"book1":{
"title": "Python Beginners",
"year": 2005 ,
"page": 399
},
"book2":{
"title": "Python Developers",
"year": 2006 ,
"page": 650
}
}
test0_list_read.txt
[
{
"title": "Python Beginners",
"year": 2005 ,
"page": 399
},
{
"title": "Python Developers",
"year": 2006 ,
"page": 650
}
]
実行結果 コンソール
$ python test0.py
=== read test0_dict_read.txt ===
{u'book1': {u'year': 2005, u'page': 399, u'title': u'Python Beginners'}, u'book2': {u'year': 2006, u'page': 650, u'title': u'Python Developers'}}
{u'year': 2005, u'page': 399, u'title': u'Python Beginners'}
Python Beginners
{
  "book1": {
  "year": 2005,
  "page": 399,
  "title": "Python Beginners"
  },
  "book2": {
  "year": 2006,
  "page": 650,
  "title": "Python Developers"
  }
}
=== write test0_dict_write.txt ===
{
  "prefecture_1": {
  "temperature_high": 37.7,
  "temperature_low": -2.6,
  "name": "tokyo"
  }
}
=== read test0_list_read.txt ===
[{u'year': 2005, u'page': 399, u'title': u'Python Beginners'}, {u'year': 2006, u'page': 650, u'title': u'Python Developers'}]
{u'year': 2005, u'page': 399, u'title': u'Python Beginners'}
Python Beginners
[
  {
  "year": 2005,
  "page": 399,
  "title": "Python Beginners"
  },
  {
  "year": 2006,
  "page": 650,
  "title": "Python Developers"
  }
]
=== write test0_list_write.txt ===
[
  {
  "temperature_high": 37.7,
  "temperature_low": -2.6,
  "name": "tokyo"
  },
  {
  "temperature_high": 33.9,
  "temperature_low": 6.1,
  "name": "naha"
  }
]
test0_dict_write.txt
{"prefecture_1": {"temperature_high": 37.7, "temperature_low": -2.6, "name": "tokyo"}}
test0_list_write.txt
[{"temperature_high": 37.7, "temperature_low": -2.6, "name": "tokyo"}, {"temperature_high": 33.9, "temperature_low": 6.1, "name": "naha"}]

[MongoDB]dump

dump手順

  1. dbpathの場所を確認する。
    # ps aux | grep mongod
    
  2. mongodを止める。
    > use admin
    > db.shutdownServer()
    > quit()
    
  3. dump実行。
    # mongodump --dbpath /var/lib/mongodb --out ~/mongodb_dump_20170906