如何在R中使用dplyr来改变所有列以改变类?

lf5gs5x2  于 2023-02-01  发布在  其他
关注(0)|答案(1)|浏览(146)

我有一个数据集,比如说df,它有100列不同类型的列向量(类),即字符,整数,双精度等。
如何使用dplyr或其他类似tidyverse的函数来改变列的类?我想对所有整型到双精度的列使用mutate_if.然后只保留as.double列并删除字符列?
有办法进去吗?有什么帮助吗?

mklgxw1f

mklgxw1f1#

在这两种情况下,都可以使用整洁选择调用来选择正确的列:

library(dplyr)

df <- tibble(
  a = runif(100),
  b = sample(1:1000, 100),
  c = sample(letters, 100, replace = TRUE),
  d = rnorm(100),
  e = 101:200
)

df |> 
  mutate(across(where(is.integer), as.double)) |> 
  select(where(is.double))

#> # A tibble: 100 × 4
#>         a     b       d     e
#>     <dbl> <dbl>   <dbl> <dbl>
#>  1 0.196    468 -1.35     101
#>  2 0.373    865  0.123    102
#>  3 0.0250   534  0.131    103
#>  4 0.622    388  0.426    104
#>  5 0.354    670  0.625    105
#>  6 0.806    474 -1.15     106
#>  7 0.282    318 -1.27     107
#>  8 0.813    331  1.05     108
#>  9 0.360    165 -0.765    109
#> 10 0.0929   645 -0.0232   110
#> # … with 90 more rows

相关问题