« 2025年8月 | トップページ | 2025年10月 »

2025年9月30日 (火)

[R]データフレームを指定した行だけのデータフレームに変換する

[ ]演算子を使う。取り出したい行を数値型ベクトルで指定する。列を指定する箇所は空欄にする。負数を指定すると、その行を取り除くという指定になる。

> n <- c(11, 22, 33, 44)
> name <- c("イレイナ", "カナメ", "セナディア", "リフ")
> seiyu <- c("本渡楓", "安野希世乃", "鈴木みのり", "瀬戸麻沙美")
> dtf <- data.frame(n, name, seiyu)
> print(dtf)
n name seiyu
1 11 イレイナ 本渡楓
2 22 カナメ 安野希世乃
3 33 セナディア 鈴木みのり
4 44 リフ 瀬戸麻沙美
> dtf[c(2, 4), ]
n name seiyu
2 22 カナメ 安野希世乃
4 44 リフ 瀬戸麻沙美
> dtf[c(-3), ]
n name seiyu
1 11 イレイナ 本渡楓
2 22 カナメ 安野希世乃
4 44 リフ 瀬戸麻沙美

2025年9月26日 (金)

[R]逆双曲線関数の値を求める

asinh関数(逆双曲線正弦)、acosh関数(逆双曲線余弦)、atanh関数(逆双曲線正接)をそれぞれ使う。逆双曲線余弦(緑色)は定義域が x > 1、逆双曲線正接(青色)は定義域が -1 < x < 1 であることに注意。

> plot(0, 0, type = "n", xlim = c(-3, 3), ylim = c(-3, 3),
+ xaxs = "i", yaxs = "i", xlab = "x", ylab = "y")
> d <- seq(-3, 3, 0.001)
> lines(d, asinh(d), col = "red")
> d <- seq(1, 3, 0.001)
> lines(d, acosh(d), col = "green")
> d <- seq(-0.999, 0.999, 0.001)
> lines(d, atanh(d), col = "blue")
> abline(h = -3:3, v = -3:3, lty = "dotted")
> text(-2.9, 2.8, expression("y =" * sinh^-1 * "(x)"), adj = 0, col = "red")
> text(-2.9, 2.5, expression("y =" * cosh^-1 * "(x)"), adj = 0, col = "green")
> text(-2.9, 2.2, expression("y =" * tanh^-1 * "(x)"), adj = 0, col = "blue")

R_inversehyperbolicfunction

計算例は、以下のとおり。

> d <- seq(-0.8, 0.8, 0.4)
> for (i in 1:length(d)) cat(sprintf("asinh(%4.1f) = %f\n", d[i], asinh(d[i])))
asinh(-0.8) = -0.732668
asinh(-0.4) = -0.390035
asinh( 0.0) = 0.000000
asinh( 0.4) = 0.390035
asinh( 0.8) = 0.732668
> d <- 1:5
> for (i in 1:length(d)) cat(sprintf("acosh(%4.1f) = %f\n", d[i], acosh(d[i])))
acosh( 1.0) = 0.000000
acosh( 2.0) = 1.316958
acosh( 3.0) = 1.762747
acosh( 4.0) = 2.063437
acosh( 5.0) = 2.292432
> d <- seq(-0.8, 0.8, 0.4)
> for (i in 1:length(d)) cat(sprintf("atanh(%4.1f) = %f\n", d[i], atanh(d[i])))
atanh(-0.8) = -1.098612
atanh(-0.4) = -0.423649
atanh( 0.0) = 0.000000
atanh( 0.4) = 0.423649
atanh( 0.8) = 1.098612

2025年9月25日 (木)

[R]累乗を求める

^演算子を使う。^演算子はベクトルを操作する:演算子より優先順位が高いため、最後の例では、指数の箇所を括弧( )で囲んでいる。

> 10 ^ 2
[1] 100
> 2 ^ 0.5
[1] 1.414214
> 2 ^ (0:8)
[1] 1 2 4 8 16 32 64 128 256

2025年9月22日 (月)

[R]インターネット上の画像をダウンロードする

magickパッケージのimage_read関数を使う。URLを指定して読み込むと、magick-image型で入手できる。これを画像ファイルに保存するには、image_write関数を使う。

以下は、声優「石見舞菜香」の所属する事務所の公式ウェブサイトから、当人の画像ファイルをダウンロードして、自分のパソコンにその画像をPNG形式で保存した例。

> library(magick)
> im <- image_read("https://www.raccoon-dog.co.jp/talent/talentpic/r10.jpg")
> class(im)
[1] "magick-image"
> print(im)
format width height colorspace matte filesize density
1 JPEG 300 400 sRGB FALSE 125201 72x72
> image_write(im, "R_magick_IwamiManaka.png")
> fl <- list.files(".", "R_magick_IwamiManaka\\.png")
> file.info(fl)[c(1, 2, 4)]
size isdir mtime
R_magick_IwamiManaka.png 129884 FALSE 2025-01-29 21:33:30

R_magick_iwamimanaka

2025年9月18日 (木)

[R]無地の画像を作成する

magickパッケージのimage_blank関数を使う。colorオプションにnoneを指定する。戻り値はmagick-image型。これを画像ファイルに出力するには、image_write関数を使う。以下は、大きさの違う無地と黄色一色の画像を作成してファイルに出力した例。

> library(magick)
> im <- image_blank(128, 256, color = "none")
> image_write(im, "R_magick_image_blank1.png")
> im <- image_blank(256, 128, color = "yellow")
> image_write(im, "R_magick_image_blank2.png")
> typeof(im)
[1] "externalptr"
> class(im)
[1] "magick-image"
R_magick_image_blank1 R_magick_image_blank2
R_magick_image_blank1.png R_magick_image_blank2.png

 

 

2025年9月17日 (水)

[R]文字列を特定の文字または文字列で分割する

stringrパッケージのstr_split関数を使う。正規表現を使って分割の条件を指定することができる。ベクトルも扱うことができる。戻り値はリスト。戻り値をベクトルにしたい場合はunlist関数を使う。

似たような機能を持つstr_split_1関数というものもあり、こちらの戻り値はベクトルになるが引数には要素数が1つのベクトルしか指定することができない。

> s <- "石見舞菜香,鈴木みのり , 野口瑠璃子, 安野希世乃 ,和多田美咲"
> str_split(s, "[ ,]+")
[[1]]
[1] "石見舞菜香" "鈴木みのり" "野口瑠璃子" "安野希世乃" "和多田美咲"
> str_split_1(s, "[ ,]+")
[1] "石見舞菜香" "鈴木みのり" "野口瑠璃子" "安野希世乃" "和多田美咲"
> s <- c("石見舞菜香,鈴木みのり , 野口瑠璃子", "安野希世乃,和多田美咲")
> str_split(s, "[ ,]+")
[[1]]
[1] "石見舞菜香" "鈴木みのり" "野口瑠璃子"
[[2]]
[1] "安野希世乃" "和多田美咲"
> str_split_1(s, "[ ,]+")
Error in `str_split_1()`:
! `string` must be a single string, not a character vector.
Run `rlang::last_trace()` to see where the error occurred.

« 2025年8月 | トップページ | 2025年10月 »

無料ブログはココログ

■■

■■■