« 2025年7月 | トップページ | 2025年9月 »

2025年8月27日 (水)

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

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

> s <- "石見舞菜香,鈴木みのり , 野口瑠璃子, 安野希世乃 ,和多田美咲"
> strsplit(s, ",")
[[1]]
[1] "石見舞菜香" "鈴木みのり " " 野口瑠璃子" " 安野希世乃 " "和多田美咲"
> strsplit(s, "[ ,]+")
[[1]]
[1] "石見舞菜香" "鈴木みのり" "野口瑠璃子" "安野希世乃" "和多田美咲"
> unlist(strsplit(s, "[ ,]+"))
[1] "石見舞菜香" "鈴木みのり" "野口瑠璃子" "安野希世乃" "和多田美咲"

ベクトルも扱うことができるが、その場合の戻り値も与えたベクトルの各要素がリストの各要素として返される。

> s <- c("石見舞菜香,鈴木みのり , 野口瑠璃子", "安野希世乃,和多田美咲")
> strsplit(s, "[ ,]+")
[[1]]
[1] "石見舞菜香" "鈴木みのり" "野口瑠璃子"
[[2]]
[1] "安野希世乃" "和多田美咲"
> unlist(strsplit(s, "[ ,]+"))
[1] "石見舞菜香" "鈴木みのり" "野口瑠璃子" "安野希世乃" "和多田美咲"

2025年8月26日 (火)

[R]小数点以下の切り上げを行う

ceiling関数を使う。厳密には、引数に与えた数値より大きい最小の整数を返すことに注意。

> d <- c(0.4, 0.5, 0.6, 1.4, 1.5, 1.6)
> for (i in 1:length(d))
+ cat(sprintf("%f -> %f\n", d[i], ceiling(d[i])))
0.400000 -> 1.000000
0.500000 -> 1.000000
0.600000 -> 1.000000
1.400000 -> 2.000000
1.500000 -> 2.000000
1.600000 -> 2.000000
> d <- c(-0.4, -0.5, -0.6, -1.4, -1.5, -1.6)
> for (i in 1:length(d))
+ cat(sprintf("%f -> %f\n", d[i], ceiling(d[i])))
-0.400000 -> -0.000000
-0.500000 -> -0.000000
-0.600000 -> -0.000000
-1.400000 -> -1.000000
-1.500000 -> -1.000000
-1.600000 -> -1.000000

« 2025年7月 | トップページ | 2025年9月 »

無料ブログはココログ

■■

■■■