« 2023年6月 | トップページ | 2023年8月 »

2023年7月31日 (月)

[R]1年間に馬に蹴り殺された兵士の数とポアソン分布(「統計解析のはなし」(東京図書)pp.94-95)

> # データの読み込み
> dtf <- read.csv("data/table2_2_7.csv", header = TRUE)
> # 死亡した兵士数 x
> x <- dtf$x
> # 1年間に兵士がx人死亡した軍団の数 n
> n <- dtf$n
> # 度数の合計 200
> nn <- sum(n)
> # 相対度数 x/200
> rf <- n / nn
> # 死亡した兵士数の平均 x~
> xm <- sum(x * rf)
> # ポアソン分のパラメーターλは平均を採用
> lam <- xm
> # 階級ごとの確率 P(X=x)
> pp <- lam ^ x / factorial(x) * exp(-lam)
> # 計算結果の表示
> print(data.frame(x, n, 相対度数 = rf, ポアソン分布 = pp))
x n 相対度数 ポアソン分布
1 0 109 0.545 0.5433508691
2 1 65 0.325 0.3314440301
3 2 22 0.110 0.1010904292
4 3 3 0.015 0.0205550539
5 4 1 0.005 0.0031346457
6 5 0 0.000 0.0003824268

2023年7月29日 (土)

[R]n年後の日付を得る

lubridateパッケージのyears関数を使う。引数には加算(減算)したい月数を整数で指定する。引数に「1」を指定すれば翌年、「-1」を指定すれば前年の日付を返す。

ymdはlubridateパッケージに含まれる、文字列から日付を得る関数。years関数の引数にベクトルを指定すれば、ベクトル単位で計算を行う。

> library(lubridate)
> da <- ymd("2000-12-23", "2123-04-05")
> da <- da + years(1)
> print(da)
[1] "2001-12-23" "2124-04-05"
> da <- da + years(-2)
> print(da)
[1] "1999-12-23" "2122-04-05"
> ymd("2000-12-23") + years(2:3)
[1] "2002-12-23" "2003-12-23"
> ymd("2000-12-23", "2010-12-23") + years(2:3)
[1] "2002-12-23" "2013-12-23"

2023年7月28日 (金)

[R]n日後の日付を得る

lubridateパッケージのdays関数を使う。引数には加算(減算)したい日数を整数で指定する。引数に「1」を指定すれば翌日、「-1」を指定すれば前日の日付を返す。

ymdはlubridateパッケージに含まれる、文字列から日付を得る関数。days関数の引数にベクトルを指定すれば、ベクトル単位で計算を行う。

> library(lubridate)
> da <- ymd("2000-12-23", "2123-04-05")
> print(da)
[1] "2000-12-23" "2123-04-05"
> da <- da + days(2)
> print(da)
[1] "2000-12-25" "2123-04-07"
> da <- da + days(-5)
> print(da)
[1] "2000-12-20" "2123-04-02"
> da <- da + days(365)
> print(da)
[1] "2001-12-20" "2124-04-01"
> ymd("2000-12-23") + days(2:3)
[1] "2000-12-25" "2000-12-26"
> ymd("2000-12-23", "2010-12-23") + days(2:3)
[1] "2000-12-25" "2010-12-26"

2023年7月18日 (火)

[R]nか月後の日付を得る

lubridateパッケージのmonths関数を使う。引数には加算(減算)したい月数を整数で指定する。引数に「1」を指定すれば翌月、「-1」を指定すれば前月の日付を返す。

ymdはlubridateパッケージに含まれる、文字列から日付を得る関数。months関数の引数にベクトルを指定すれば、ベクトル単位で計算を行う。

> library(lubridate)
> da <- ymd("2000-12-23", "2123-04-05")
> print(da)
[1] "2000-12-23" "2123-04-05"
> da <- da + months(1)
> print(da)
[1] "2001-01-23" "2123-05-05"
> da <- da + months(-2)
> print(da)
[1] "2000-11-23" "2123-03-05"
> da <- da + months(12)
> print(da)
[1] "2001-11-23" "2124-03-05"
> ymd("2000-12-23") + months(2:3)
[1] "2001-02-23" "2001-03-23"
> ymd("2000-12-23", "2010-12-23") + months(2:3)
[1] "2001-02-23" "2011-03-23"

2023年7月17日 (月)

[R]文字列から日付時刻を作成する

strptime関数を使う。

> strptime(c("2001/02/03 12:34:56", "2012/03/04 01:02:03"), "%Y/%m/%d %H:%M:%S")
[1] "2001-02-03 12:34:56 JST" "2012-03-04 01:02:03 JST"

日付時刻の書式を指定する書式文字列については、strptime関数のヘルプに詳しい。

> ?strptime

2023年7月16日 (日)

[R]文字列から時刻を作成する

strptime関数を使う。Rには時刻型というベクトル(変数)はなく、日付とワンセットであるため、時刻だけを扱おうとすると、自動的にその日の日付として処理されてしまうことに注意。

> Sys.time()
[1] "2023-06-27 23:37:26 JST"
> strptime(c("12", "34"), "%S")
[1] "2023-06-27 00:00:12 JST" "2023-06-27 00:00:34 JST"
> strptime(c("12:34", "34:56"), "%M:%S")
[1] "2023-06-27 00:12:34 JST" "2023-06-27 00:34:56 JST"
> strptime(c("12:34:56", "22:34:56"), "%H:%M:%S")
[1] "2023-06-27 12:34:56 JST" "2023-06-27 22:34:56 JST"

2023年7月14日 (金)

[R]警告メッセージ「line ○ appears to contain embedded nulls」

read.tableやread.csv関数を使用してこのメッセージが表示されたときは、読み込んだファイルにヌル(0x00、NULL)が含まれており、そのために正しく読み込めていない可能性が高い。skipNulオプションをTRUEにすると、ヌルをスキップして読み込むようになり、このメッセージが表示されなくなる。

> dtf <- read.csv("○○○", header = TRUE)
警告メッセージ:
read.table(file = file, header = header, sep = sep, quote = quote, で:
line ○ appears to contain embedded nulls
> dtf <- read.csv("○○○", header = TRUE, skipNul = TRUE)
>

2023年7月11日 (火)

[R]WebサイトのHTTP応答ヘッダーを表示する

curlGetHeaders関数を使う。以下は首相官邸のWebサイトのHTTP応答ヘッダーを読み込んで表示した例。

> curlGetHeaders("https://www.kantei.go.jp")
[1] "HTTP/1.1 200 OK\r\n"
[2] "Content-Type: text/html\r\n"
[3] "Content-Length: 34079\r\n"
[4] "Connection: keep-alive\r\n"
[5] "x-amz-id-2: 5WwFUp70CdeHuaZnA6D4JHd6TMOLP+rMlDThFyJyK0L36Ef56JmQBErMN9ykfOxqDFTsOL2fMKfTFT86HK1t5A==\r\n"
[6] "x-amz-request-id: XS0PB5HEJW6JWJ34\r\n"
[7] "x-amz-replication-status: COMPLETED\r\n"
[8] "Last-Modified: Fri, 16 Jun 2023 11:47:26 GMT\r\n"
[9] "x-amz-server-side-encryption: AES256\r\n"
[10] "x-amz-version-id: jWmosSt3Co6lQohIyEfv7ei_AOH7v3MI\r\n"
[11] "Accept-Ranges: bytes\r\n"
[12] "Server: none\r\n"
[13] "Date: Fri, 16 Jun 2023 12:11:03 GMT\r\n"
[14] "ETag: \"f82848ddba52d80055f6700388dca50a\"\r\n"
[15] "X-Cache: Hit from cloudfront\r\n"
[16] "Via: 1.1 9d4586c3d96c296deb0177ba3471c4a4.cloudfront.net (CloudFront)\r\n"
[17] "X-Amz-Cf-Pop: NRT57-P3\r\n"
[18] "X-Amz-Cf-Id: 85ur58h0Nu7ZeEYeAkB1z6jq1tsUH9E1gVDRSb_rOPsfU0Z_F4g62Q==\r\n"
[19] "Age: 25\r\n"
[20] "X-Frame-Options: SAMEORIGIN\r\n"
[21] "\r\n"
attr(,"status")
[1] 200

« 2023年6月 | トップページ | 2023年8月 »

無料ブログはココログ

■■

■■■