プログラミング基礎
算術演算子
比較演算子(共通)
文字型
python
type(3)
R
mode(3)
変数
python
x = 10 #変数xに10を代入
x #変数xを取り出す
Rは<-と=の二つ使えるが慣例的に<-を使う
R
x <- 10 #変数xに10を代入
x #変数xを取り出す
文字列の代入
python
z = 'hello world!' #文字列を代入するときは'',""のどちらかで囲む
z
R
z <- 'hello world!' #文字列を代入するときは'',""のどちらかで囲む
z
配列
python
a = [1,2,3,4,5,10]
a
python
b = len(a)#要素数を取得
b
python
a[0] #最初の要素を取得
python
a[-1]#最後の要素を取得
python
a[b-1]#最後の要素を取得
R
a <- c(1,2,3,4,5,10)
a
R
length(a) #要素数を取得
R
a[1] #最初の要素を取得
R
a[length(a)] #最後の要素を取得
python
a[0:3] #1~3番目の要素を取得
python
a[2:] #3番目以降の要素を取得
python
a[:3] #3番目までの要素を取得
R
a[1:3]#1~3番目の要素を取得
R
a[3:length(a)]#3番目以降の要素を取得
処理
分岐
python
a = 3
if a == 3:
print('a is 3')
else:
print('a is not 3')
R
a <- 3
if (a == 3){
print('a is 3')
}else{
print('a is not 3')
}
論理演算子
論理積
python
# 6歳以上かつ(and)身長120cm以上
age = 5
height = 110
if(6 <= age and 120 <= height):
print("乗車できます")
else:
print("乗車できません")
R
age <- 6
height <- 120
# 6歳以上かつ(&)身長120cm以上の人
if(6 <= age & 120 <= height){
print("乗車できます")
}else{
print("乗車できません")
}
論理和
python
# 6歳以上または(or)身長120cm以上
age = 5
height = 110
if(6 <= age or 120 <= height):
print("乗車できます")
else:
print("乗車できません")
R
age <- 6
height <- 120
# 6歳以上または(|)身長120cm以上の人
if(6 <= age | 120 <= height){
print("乗車できます")
}else{
print("乗車できません")
}
否定
python
# 6歳ではない(not)人
if not(age == 6):
print("6歳ではない")
else:
print("6歳です")
R
# 6歳ではない(!)人
if (!6 == age){
print("6歳ではない人です")
}else{
print("6歳の人です")
}
複数条件
python
age = 61
height = 160
if(6 <= age and 120 >= height) or (60 <= age and 150 <= height):
print("乗車できます")
else:
print("乗車できません")
R
age <- 59
height <- 160
# 6歳以上かつ(&)身長120cm以上の人
if((6 <= age & 120 >= height) | (60 <= age & 150 <= height)){
print("乗車できます")
}else{
print("乗車できません")
}
繰り返し
python
for 変数 in リスト:
実行したい処理
python
a = [1,2,3,4,5,10]
for i in a:
print(i)
R
for (変数 in リスト){
実行したい処理
}
R
a <- c(1,2,3,4,5,10)
for (i in a){
print(i)
}
偶数のみ表示させるには?
python
a = [1,2,3,4,5,10]
for i in a:
if i %2 ==0:
print(i)
R
a <- c(1,2,3,4,5,10)
for (i in a){
if (i %% 2 ==0){
print(i)
}
}
pythonには内包表記と呼ばれる手法があり処理が早い
python
[変数 for 変数 in リスト if 条件]
python
[i for i in a if i % 2 ==0]
R
a[a %% 2 == 0]
while文
python
num=1
while num<10:
print(num)
num += 1
R
num <- 1
while(num < 10){
print(num)
num = num+1
}
関数
python
def 関数名(引数):
実行する処理
return 戻り値
R
関数名 <- function(引数){
実行する処理
return (戻り値)
}
python
def bmi(height,weight):
result = weight / height / height
return result
R
bmi <- function(height,weight){
result <- weight / height / height
return (result)
}
データフレーム
python
import pandas as pd
data = [
['吉田',60,40],
['三苫',30,80],
['浅野',70,60],
['久保',10,80],
]
score = pd.DataFrame(data,columns=['氏名','数学','英語'])
score
R
name <- c('吉田','浅野','三苫','久保')
math <- c(60,30,70,10)
english <- c(40,80,60,80)
score <- data.frame(氏名=name,数学=math,英語=english)
score
python
#データフレームのサイズ確認
score.shape
R
#データフレームのサイズ確認
dim(score)
python
#行数確認
len(score)
R
#行数確認
nrow(score)
python
#列数確認
len(score.columns)
R
#列数確認
ncol(score)
python
#データの取り出し
score['数学']
R
#データの取り出し
score$数学
python
score.数学
R
#データの取り出し
score[,2]
python
score[score.数学 > 50]
R
#数学が50点以上の人のデータの取り出し
score[score$数学 > 50,]
python
score[score.数学 > 50][['氏名','数学']]
R
#数学が50点以上の人の氏名と数学だけのデータの取り出し
score[score$数学 > 50,c('氏名','数学')]
R別解 dplyrパッケージ
R
library(dplyr)
score %>% filter(数学 > 50)
R
library(dplyr)
score %>% filter(数学 > 50) %>% select(氏名,数学)
ファイル読み込み
ディレクトリ
フォルダと同じ意味を表す
WindowsやMacなどの、いわゆるGUIでは「フォルダ」
LinuxやUnixなどのCUIでは「ディレクトリ」
ルートディレクトリ→最上位のディレクトリ
カレントディレクトリ→今現在自分がいるディレクトリ
パス
ファイルやディレクトリの住所のこと
- 絶対パス:ルートディレクトリからの経路
- ¥ドキュメント¥授業資料¥画像ファイル1
- /ドキュメント/授業資料/画像ファイル1
- 相対パス:カレントディレクトリからの経路
- ..¥..¥ダウンロード¥テキストファイル1
CSVファイル読み込み
ファイル名の前にファイルの絶対パスを記載すること
文字化けしたらUTF-8に設定
python
import pandas as pd
data_csv = pd.read_csv('/Users/〇〇/abc.csv',encoding='shift-jis')
data_csv.head(5)
R
data_csv <- read.csv('/Users/〇〇/abc.csv',fileEncoding='sjis')
data_csv