LoginSignup
16
20

More than 5 years have passed since last update.

PythonとRのコマンド比較表

Last updated at Posted at 2018-11-03

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
16
20
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
16
20