私はデータを持っていますが、これは小さなサンプルです:
df <- structure(list(`d955` = c("1", "4", NA, NA),
`65c2` = c("6a08", NA, "6a08", "6a09")),
class = c("tbl_df", "tbl", "data.frame"),
row.names = c(NA, -4L), .Names = c("d955", "65c2"))
# A tibble: 4 x 2
# d955 `65c2`
# <chr> <chr>
# 1 1 6a08
# 2 4 <NA>
# 3 <NA> 6a08
# 4 <NA> 6a09
どちらの列も文字型です。1 から 5 までの数字のみを含むすべての列の列タイプを整数に変更したいと考えています。これを行うために列を厳選できることはわかっていますが、列は継続的に変化するため、これは満足できるオプションではありません。
では、これを自動的に行うにはどうすればよいでしょうか。mutate_if
パッケージから調べていdplyr
ますが、そもそも正しい列を選択する方法がわかりません。
これはうまくいくstr_detect
かもしれませんが、次のようなものも行内の文字列に 1 ~ 4 の数字でstr_detect(df, "[1234]")
一致します。65c2
整数のカウントは常に 1 になるため、を使用したソリューションを検討してきstr_count
ましたが、stringcount 条件に基づいて列を選択するための適切なソリューションが見つかりません...
望ましい自動結果:
# A tibble: 4 x 2
# d955 `65c2`
# <int> <chr>
# 1 1 6a08
# 2 4 <NA>
# 3 <NA> 6a08
# 4 <NA> 6a09