データアナリストのメモ帳

データアナリストのメモ帳

IT企業で働くデータアナリストのブログ

【R言語】現在のディレクトリを変更する方法(RStudio)

基本的なところですが、R言語を勉強し始めた初期につまずいていたので共有します。 私の場合、Rの初心者どころかプログラミング初心者だったということもありますが・・・

setwd("~/フォルダ名")

これだけです。

あるいは、 Session → Set Working Directory → Choose Directory...

Rでディレクトリ変更

これで、ディレクトリ変更ができます。

【お知らせ】
データアナリストのキャリアや年収についてのブログを書いています。
ご興味のある方は、以下のリンクからどうぞ。 dataaanalytics.com

【R言語】フォルダ内のすべてのCSVファイルを一括で取り込み結合する方法

Excelでやると日が暮れてしまうような作業を一発で終わらせる方法です。 複数のCSVファイルをくっつける作業はRで自動化しましょう。

Rで次のように書けば、指定したフォルダ内のすべてのCSVファイルを読み込んで、縦にくっつけてくれます。

#dataというディレクトリをワーキングディレクトリに設定
setwd("~/data")

#ディレクトリ内の名前が.csvで終わるファイル名を取得
csv_list <- list.files(pattern = "*.csv")

#リスト内に名前のあるCSVファイルをすべて読み込んで縦にくっつける
data <- do.call(rbind, lapply(csv_list, function(x) read.csv(x, header=TRUE, stringsAsFactors = FALSE)))

不毛な作業はRで効率化を!

【Python】pandas.meltで横持ちのデータを縦持ちにする

pandas.meltで横持ちのDataFrameを縦に変換する方法です。 DataFrameの列に日付が並んでいる(左から右へday1, day2, ...となる)場合などに有効です。

例えば、次の画像のようなデータを、 pandas.meltの使い方

このように列として持っていた日付を縦に並べます。 pandas.meltの使い方

id_varsで、ID等として使う列を指定します。(この列は元々縦持ちであると想定) var_nameは縦持ちにした変数の列名を、value_nameは縦持ちにした値の列名を指定します。

※id_varsで指定しなかった列はすべて縦持ちに変換されます。

# import modules
import pandas as pd
import numpy as np

# DataFrameの定義
df = pd.DataFrame()
df['id'] = ['id_' + str(i) for i in range(0, 10)] * 100
cols = ['day' + str(i) for i in range(1, 8)]
for col in cols:
    df[col] = np.random.rand(1000)

# pd.melt で 元の DataFrameを変換
pd.melt(df, id_vars = ['id'], var_name = 'day', value_name = 'value')

pandas.melt reference https://pandas.pydata.org/docs/reference/api/pandas.melt.html