かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

R

duplicate 'row.names' are not allowedが出る

R

色々な原因があると思いますが私の場合はこういう感じでしたということで。 read.csvで表題のようなエラーが出て困ってました。 CSVのヘッダー行の列数とデータ部分の列数が異なっているためにこのエラーが出ました。 単純に異なってるわけじゃなくて、Excel…

R言語で相関係数

R

2つの数字データがあって、相関ってあるの?っていうのが知りたい。そんなときに使えるのが相関係数というものみたいです。 相関係数を求める前に共分散というのを求める必要があります。共分散というのは、2つのデータの偏差(平均と引いた数)を掛け算して平…

R言語で偏差値って

R

はぁ…数学苦手…。 R言語って統計解析がお得意なんですって。 すべての数字を合計して数で割った平均と、ソートして真ん中の値を取り出す中央値くらいは知ってるけどそれ以上はちょっと…という感じですね。 平均と中央値を出す関数はmeanとmedianという関数と…

R言語で文字列を分割したい

R

stringrパッケージにある、str_splitでできます。第一引数に分割したい文字列、patternに分割する区切りを表す正規表現を指定できます。カンマか-で分割したい場合は以下のような感じになります。 require(stringr) x <- "a,b,c-d-e-f" y <- str_split(x, pa…

R言語のベクトル

R

同じ型をまとめて管理するものでc()関数で作るらしい。 x <- c(1,2,3,4,5) print(x) 出力結果 [1] 1 2 3 4 5 1~5みたいに規則性のあるものは、開始:終了といった感じでかけるみたい。 x <- 1:5 print(x) 出力結果は同じ。 Rはベクトルに対する演算が便利に…

R言語のifelse

R

ExcelのIF文みたいに使えます。 ifelse(1==1, print("true case"), print("false case")) ifelse(1!=1, print("true case"), print("false case")) 実行すると以下のような感じ。 [1] "true case" [1] "false case" ベクトルに対しても使える点が便利っぽい…

R言語でif else文とか

R

if文とかもちゃんとあるんですね。 judge <- function(x) { if (x == 10) { print("ten!!!") } else if(x == 8.1) { print("update ten!!") } else { print("...") } } judge(10) judge(8.1) judge(7) if (条件) { } else { }でさくっと書けます。実行結果は…

R言語で戻り値

R

R言語で関数に戻り値つけたかったらreturn()をすればいいみたい。 calc.add <- function(x, y) { return(x + y) } print(calc.add(10, 2)) これで、12と表示される。

R言語で関数呼び出し時の引数の仕方

R

Rで関数を呼び出すときは、引数を順番通りに指定することができます。 そのほかに名前で指定することもできる。例えば以下のように。 greet <- function(name) { print(sprintf("Hello %s!", name)) } greet(name = "tanaka") ちなみに、関数の引数はデフォ…

R言語でHello world その2

R

名前指定してHello ○○!ってしてみたいですよね。ということでやってみました。 greet <- function(name) { print(sprintf("Hello %s!", name)) } greet("tanaka") 引数はこんな感じで定義できます。sprintfで書式付き文字列で文字列を組み立ててprintで表示…

R言語でHello world

R

そういえばやってなかった。 print関数で出力できるっぽいです。 print("Hello world") で以下のように出力されます。 [1] "Hello world" Hello worldを出力するgreet関数は以下のような感じで定義できます。 greet <- function() { print("Hello world") } …

R言語で複数ファイルにわかれたデータを1つのdata.frameに一括で読み込む その2

R

blog.okazuki.jp 先日書いた記事にReduce使うとRらしいよ!っていうコメントいただいたので試してみました。 x <- Reduce(rbind, lapply(list.files(pattern = "namelist[0-9].csv"), read.csv)) これで、ファイル名のリストをとってきて、data.frameに変換…

R言語で複数ファイルにわかれたデータを1つのdata.frameに一括で読み込む

R

別記事にもっといい方法を書きました。 blog.okazuki.jp ということをしたかった。 例えば以下のような namelist1.csv namelist2.csv namelist3.csv という感じのファイルがあるとして、これを1つのdata.frameに突っ込みたい。 R初心者的にがんばったらこう…

RでJOINしたい

R

merge関数を使う > x <- data.frame(id = c(1,2,3), name = c("a", "b", "c")) > y <- data.frame(id = c(1,2,3,4), age = c(12, 10, 11, 9)) > merge(x, y, "id") id name age 1 1 a 12 2 2 b 10 3 3 c 11 > merge(x, y, "id", all = T) id name age 1 1 a …