PythonとRの両方を使っていると頭が混乱するので、作成しました。
PythonはPython3です。
普段はGoogle Spread sheetsにまとめています。
Markdown形式に変換して貼り付けました。
ただ変換が上手くいっていないようで、間違いがあるかもしれません。
間違いやアドバイス等ございましたら、ご指摘頂けますと幸いです。
カテゴリ | 内容 | R - 関数 | R - 入力例 | R - 出力例 | Py - 関数 | Py - 入力例 | Py - 出力例 |
---|---|---|---|---|---|---|---|
その他 | 1行をコメントアウトする | # | # comment | (何も表示されない) | # | # comment | (何も表示されない) |
その他 | 複数行をコメントアウトする | if(0) | if(0){comment} | (何も表示されない) | """ | """comment""" | (何も表示されない) |
その他 | IDE上で行列をテーブル形式で表示する | View | View(matrix(0,nrow=3,ncol=2)) | (略) | ? | ? | ? |
その他 | 関数plotのヘルプを表示する | help | help(plot) or ?plot | (略) | help | help(type) | (略) |
その他 | plotのexampleを実行する | example | example(plot) | (略) | ? | ? | ? |
その他 | プログラムを終了する | quit | quit() | (略) | exit or quit | exit() or quit() | (略) |
データフレーム | 2行2列の(1, 2, 3, 4)のデータフレームを生成する | data.frame | data.frame(matrix(1:4,ncol=2,nrow=2)) | X1 X21 1 32 2 4 | DataFrame | import pandas as pdpd.DataFrame([[1,2],[3,4]]) | 0 10 1 21 3 4 |
データフレーム | データフレームの特定の列を並び替える | order | (略) | (略) | (略) | (略) | (略) |
データフレーム | データフレームdataの先頭行を返す | head | head(data) | (略) | head | data.head() | x y0 1 0.7902171 2 0.0149472 3 0.6582913 4 1.1733964 5 0.068697 |
データフレーム | データフレームdataの末尾行を返す | data | tail(data) | (略) | head | data.tail() | x y95 96 -0.44587996 97 1.11885197 98 -0.84743398 99 0.48216199 100 0.797956 |
データフレーム | データフレームdataの行名(index)を返す | rownames | rownames(data) | (略) | index | data.index | RangeIndex(start=0, stop=100, step=1) |
データフレーム | データフレームdataの列名を返す | colnames | colnames(data) | (略) | columns | data.columns | Index(['x', 'y'], dtype='object') |
データフレーム | データフレームdataの行数を返す | nrow | nrow(data) | (略) | len | len(data) | 100 |
データフレーム | データフレームdataの2列目までを返す | [,:] | data[,:2] | (略) | [:] | data[:2]※Pythonの場合、1列目は「1番目の列」ではなく「0番目の列」として認識されることに注意 | x y0 1 0.7902171 2 0.014947 |
データフレーム | データフレームdataの1行目を取得する | [,] | data[1,] | 1 3 | iloc | data.iloc[0,:] | x 0.02y 36.70Name: 0, dtype: float64 |
データフレーム | データフレームdataの1列目を取得する | [,] | data[,1] | 1 2 | iloc | data.iloc[:,0] | x0 11 2~Name: x, Length: 2000, dtype: float64 |
データフレーム | データフレームdataの1行1列目の要素を取得する | [,] | data[1,1] | 1 | iloc | data.iloc[0,0] | 0.02 |
データフレーム | リストlistにデータフレームdataを追加する | list | list(list,data) | (not displayed) | append | list.append(data) | (略) |
データフレーム | データフレームdata1とdata2を縦に結合してdataに格納する | data.frame | data.frame(data1,data2)(列名が同じ場合) | (略) | concat | import pandas as pddata1 = pd.concat([data1,data2]) | (略) |
データフレーム | データフレームdata1とdata2を横に結合してdataに格納する | data.frame | data.frame(data1,data2)(列名が異なる場合) | (略) | concat | import pandas as pddata1 = pd.concat([data1,data2],axis=1) | (略) |
データフレーム | データフレームdataの2列目の値が、3より大きい行を抽出する | subset | data=data.frame(matrix(1:4,ncol=2))subset(data,data[,2]>3) | X1 X22 2 4 | > | import pandas as pdpd.DataFrame([[1,2],[3,4]])data[data.iloc[:,1]>3] | 0 11 3 4 |
データフレーム | 空のデータフレームを作成する | import pandas as pddf = pd.DataFrame({'A':[],'B':[]}) | |||||
データフレーム | データフレームpdをxlsx形式で保存する | import pandas as pddf.to_excel("tmp.xlsx",index=False) | |||||
ファイル操作 | "/Users/Name/"以下にあるcsvファイルのパスを取得する | list.files | list.files("Users/Name/",pattern=".csv$") | "a.csv" "b.csv" | glob | import os, glob[os.path.relpath(x) for x in glob.glob("/Users/Name/*csv")] | ['a.csv','b.csv'] |
ファイル操作 | "/Users/Name/"以下にあるcsvファイルのフルパスを取得する | list.files | list.files("Users/Name/",pattern=".csv$",full.names=T) | "Users/Name/a.csv" "Users/Name/b.csv" | glob | import globglob.glob("/Users/Name/.csv")※Windowsの場合r'/Users/Name/.csv'とする | ['/Users/Name/a.csv','/Users/Name/b.csv'] |
ファイル操作 | ダイアログを開き、選択したファイルのパスを取得する | file.choose | file.choose() | "Users/Name/a.csv" | askopenfilename | from tkinter.filedialog import askopenfilenamefilename = askopenfilename()※Anacondaで使用不可 | (略) |
ファイル操作 | "/Users/Username/tmp.csv"を読み込む | read.csv | read.csv("/Users/Username/tmp.csv") | (略) | read_csv | import pandas as pdpd.read_csv("/Users/Name/tmp.csv")※Windowsではr"/Users/Username/tmp.csv"とする | (略) |
ファイル操作 | "/Users/Username/tmp.csv"を1行ずつ読み込む | readLines | readLines("/Users/Username/tmp.csv") | (略) | read_table | import pandas as pdpd.read_table("/Users/Name/tmp.csv") | (略) |
ファイル操作 | データフレームdataを"/Users/Name/tmp.csv"に出力する | write.csv | write.csv(data,"/Users/Username/tmp.csv") | (略) | to_csv | data.to_csv("/Users/Name/tmp.csv",index=False) | (略) |
ファイル操作 | データフレームdataを"/Users/Name/tmp.txt"にtsv形式で出力する | write.table | write.table(data,"/Users/Username/tmp.csv",row.names=F,sep="�",quote=F) | (略) | to_csv | data.to_csv("/Users/Name/tmp.txt",index=False,sep="�") | (略) |
ファイル操作 | ディレクトリ名を取得する | dir.choose | dir.choose() | (略) | askdirectory | from tkinter.filedialog import askdirectoryaskdirectory()※Anacondaで使用不可 | (略) |
ファイル操作 | ディレクトリを作成する | dir.create | dir.create(path) | (略) | mkdir | import osos.makedirs(dir_summary,exist_ok=True) | (略) |
ファイル操作 | ディレクトリを削除する | unlink | unlink(path,recursive=T) | (略) | rmdir | import osos.rmdir(path) | (略) |
ファイル操作 | ファイルを削除する | file.remove | file.remove(path) | (略) | remove | import osos.remove(path) | (略) |
ファイル操作 | AnacondaのFile explolerで開いているディレクトリを取得する | - | - | - | path | import osos.path.dirname(os.path.realpath('file')) | '/Users/username/Desktop' |
ファイル操作 | tsv(タブ区切り)形式のファイルを読み込む | import pandaspd.read_csv( 'foo.txt', delimiter='\t' ) | |||||
プロット | 2次元に散布図をプロットする | plot | x=rnorm(10)y=rnorm(10)plot(x,y) | (略) | plot | import numpy as npimport matplotlib.pyplot as pltx = np.arange(10)y = np.random.randn(10)plt.plot(x,y) | (略) |
プロット | 2次元に折れ線グラフをプロットする。色を赤に設定する。タイトルをtitleに設定する。x軸の名前をX、y軸の名前をYに設定する。x軸とy軸の範囲を-10〜10に設定する。 | plot | x=rnorm(10)y=rnorm(10)plot(x,y,pch=19,col="red",main="title",xlab="X",ylab="Y",xlim=c(-10,10),ylim=c(-10,10),type="l") | (略) | plot | import numpy as npimport matplotlib.pyplot as pltx = np.arange(-3, 3, 0.1)y = np.sin(x)plt.figure(figsize=(15,4))plt.plot(x, y)plt.title("title")plt.xlabel("X")plt.ylabel("Y")plt.ylim(-10, 10)plt.xlim(-10,10) | (略) |
リスト | 2つのデータフレームからリストを生成する | list | a=data.frame(matrix(1:4,ncol=2,nrow=2))b=data.frame(matrix(1:4,ncol=2,nrow=2))list(a,b) | [[1]]X1 X21 1 32 2 4[[2]]X1 X21 1 32 2 4 | [] | import pandas as pda=pd.DataFrame([[1,2],[3,4]])b=pd.DataFrame([[5,6],[7,8]])[a,b] | [ 0 10 1 21 3 4, 0 10 5 61 7 8] |
リスト | リストdataの各データフレームの2列目の最大値を取得する | sapply | data=list(data.frame(1:5,2:6),data.frame(4:6,5:7))sapply(data,function(x) max(x[,2])) | 6 7 | map | import pandas as pda=pd.DataFrame([[1,2],[3,4],[5,6]])b=pd.DataFrame([[5,6],[7,8]])c=[a,b]list(map(lambda x:max(x.iloc[:,1]),c)) | [6, 8] |
リスト | リストdataの各データフレームの2行目の最大値を取得する | sapply | data=list(data.frame(1:5,2:6),data.frame(4:6,5:7))sapply(data,function(x) max(x[2,])) | 3 6 | map | import pandas as pda=pd.DataFrame([[1,2],[3,4],[5,6]])b=pd.DataFrame([[5,6],[7,8]])c=[a,b]list(map(lambda x:max(x.iloc[1,:]),c)) | [4, 8] |
計算 | 1+1を計算する | + | 1+1 | 2 | + | 1+1 | 2 |
計算 | 1-1を計算する | - | 1月1日 | 0 | - | 1月1日 | 0 |
計算 | 2×3を計算する | * | 2*3 | 6 | * | 2*3 | 6 |
計算 | 6÷2を計算する | / | 6月2日 | 3 | / | 6月2日 | 3 |
計算 | 3の2乗を計算する | ^ | 3^2 | 9 | ** | 3.00E+02 | 9 |
計算 | 7を2で割った商を計算する | %/% | 7%/%2 | 3 | // | 7//2 | 3 |
計算 | 7を2で割った余りを計算する | %% | 7%%2 | 1 | % | 7%2 | 1 |
計算 | 標準正規分布に従う乱数を2つ発生させる | rnorm | rnorm(2) | 0.2925780 -0.9907712 | rand | from numpy import randomrandom.randn(2) | array([-0.17913506, 1.23426622]) |
計算 | 0.333...を小数点以下第3位に丸める | round | round(1/3,3) | 0.333 | round | round(1/3,3) | 0.333 |
処理 | xの初期値を0とし、x = x + 1の処理を3回繰り返す | for | x = 0for(i in 1:3){x = x + 1}print(x) | 3 | for | x=0for i in range(3):x=x+1print(x) | 3 |
処理 | ばねの運動エネルギーを求める関数を作成し、k=3, x=5を代入する | function | energy <- function(k,x){return(1/2 * k * x^2)}energy(3,5) | 37.5 | def | def energy(k,x):return 1/2 * k * x**2energy(3,5) | 37.5 |
処理 | 数値を代入して正の数 or 負の数 or ゼロを返す関数numberを定義する | if | number <- function(x){if(x==0){"zero"}else if(x>0){"posi"}else "nega"}c(number(0),number(1),number(-1)) | "zero" "posi" "nega" | if | def number(x):if x==0:print("zero")elif x>0:print("posi")else :print("nega") | zeroposinega |
配列 | 配列(1,2,3)の平均値を算出する | mean | mean(c(1,2,3)) | 2 | mean | from statistics import meanmean([1,2,3]) | 2 |
配列 | 配列(1,2,3)の標準偏差を算出する | sd | sd(c(1,2,3)) | 1 | stdev | from statistics import stdevstdev([1,2,3]) | 1 |
配列 | 配列(1,2,3)の最大値を算出する | max | max(c(1,2,3)) | 3 | max | max([1,2,3]) | 3 |
配列 | 配列(1,2,3)の最小値を算出する | min | min(c(1,2,3)) | 1 | min | min([1,2,3]) | 1 |
配列 | 要素2,3,4が入った配列を生成する | c | c(2,3,4) | 2 3 4 | [] | [2,3,4] | [2, 3, 4] |
配列 | -1から1まで、0.5刻みで配列を生成する | seq | seq(-1,1,0.5) | -1.0 -0.5 0.0 0.5 1.0 | arange | import numpy as npnp.arange(-1,1.1,0.5) | array([-1. , -0.5, 0. , 0.5, 1. ]) |
配列 | 3行2列の行列を作成する | matrix | matrix(0,nrow=3,ncol=2) | [,1] [,2][1,] 0 0[2,] 0 0[3,] 0 0 | reshape | import numpy as npnp.zeros(6).reshape(2,3) | array([[ 0., 0., 0.],[ 0., 0., 0.]]) |
配列 | 配列(1,1,2,3,3)から重複の無い値を抽出する | unique | unique(c(1,1,2,3,3)) | 1 2 3 | unique | import pandas as pdpd.DataFrame([1,1,2,3,3]).iloc[:,0].unique() | array([1, 2, 3]) |
文字列 | 文字列aと文字列bを連結する | paste0 | paste0("a","b") | "ab" | + | "a"+"b" | 'ab' |
文字列 | 文字列abのaをbに置換する | gsub | gsub("a","b","ab") | "bb" | replace | "ab".replace("a","b") | 'bb' |
文字列 | 文字列abcの2文字目から3文字目までを抽出する | substr | substr("abc",2,3) | "bc" | [:] | "abc"[1:3] | 'bc' |
文字列 | 文字列の配列('a','b','c')の中から'b'が含まれている要素の番号を取得する | grep | grep('b',c('a','b','c')) | 2 | index | abc'.index('b') | 1 |
変数 | 変数xに2を代入し、x+3を実行する | #NAME? | x=2x+3 | 5 | = | x=2x+3 | 5 |
変数 | 変数xに2を代入した結果を表示する | (=) | (x=2) | 2 | ? | ? | ? |
変数 | 文字列"a"の型を調べる | str | str("a") | chr "a" | type | type("a") | str |