1

私はデータを持っていますが、これは小さなサンプルです:

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
4

3 に答える 3