我有数据,这是一个小样本:
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
,这可能有效,但类似的东西str_detect(df, "[1234]")
也会匹配65c2
行中的字符串,数字在 1-4 之间。我一直在寻找解决方案str_count
,因为整数的计数始终为 1,但我找不到基于 stringcount 条件选择列的好解决方案......
所需的自动化结果:
# A tibble: 4 x 2
# d955 `65c2`
# <int> <chr>
# 1 1 6a08
# 2 4 <NA>
# 3 <NA> 6a08
# 4 <NA> 6a09