Menu
Coddy logo textTech

テキストの置換

CoddyのRジャーニー「ロジックとフロー」セクションの一部。レッスン 5/64。

sub(pattern, replacement, x)は各文字列内の最初の一致を置換し、gsub()はすべての一致を置換します。grepl()と同様に、fixed = TRUEはパターンをプレーンテキストとして扱います。

date <- "2024-01-15"
print(sub("-", "/", date, fixed = TRUE))
print(gsub("-", "/", date, fixed = TRUE))

出力:

[1] "2024/01-15"
[1] "2024/01/15"

空の文字列に置き換えると、一致した部分が削除されます。これにより、数値に変換する前にテキストを整えます。

price <- "$1,299.00"
clean <- gsub(",", "", sub("$", "", price, fixed = TRUE), fixed = TRUE)
print(clean)
print(as.numeric(clean) * 2)

出力:

[1] "1299.00"
[1] 2598

fixed = TRUE なしでは、パターンは正規表現になります。便利な要素を2つ紹介します。[0-9] は任意の数字にマッチし、+ はその直前の要素を1回以上繰り返すため、" +" はスペースの連続にマッチします。

msg <- "call  me   at 555 0199"
print(gsub(" +", " ", msg))
print(gsub("[0-9]", "#", msg))

出力:

[1] "call me at 555 0199"
[1] "call  me   at ### ####"

他の文字列関数と同様に、sub() と gsub() はベクトルのすべての要素に対して機能します:

codes <- c("a-1", "b-22", "c-3")
print(gsub("-", "", codes, fixed = TRUE))
print(sub("-[0-9]+", "", codes))

出力:

[1] "a1"  "b22" "c3" 
[1] "a" "b" "c"
challenge icon

チャレンジ

簡単

slugify(title)を完成させてください。タイトルを小文字に変換し、先頭と末尾の空白を削除し、空白の連続をすべて1つの-に置き換えて返します。 Hello World はhello-worldになります。

提供されたコードはタイトルを読み込み、返された値を出力します。

自分で試してみよう

slugify <- function(title) {
  # ここにコードを書いてください
  title
}

# 提供された入出力コード:そのままにしておいてください
input <- suppressWarnings(readLines(file("stdin")))
cat(slugify(input[1]), sep = "\n")
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン

自分で練習してみよう: Rオンラインコンパイラ