首页 > 解决方案 > 如何通过 for 循环更改列类型?

问题描述

我有一个 df,其中某些列是类型字符,我希望它们是整数值。我知道我可以使用 as.integer 切换输入:

df$i <- as.integer(df$i)

但是我希望循环更改一堆列,而不必多次运行该命令。到目前为止,这是我的代码:

cols_to_change = c(37:49, 53:61)
  for(i in cols_to_change)
  {
    class(df[, i])  <- 'integer'
  }

我收到一个列表对象无法转换为“整数”类型的错误,我在哪里错了?有没有更简单的方法可以使用其中一个应用函数来做到这一点?

标签: r

解决方案


一个更简单的方法是使用dplyr::mutate_at

df <- dplyr::mutate_at(df, c(37:49, 53:61), as.integer)

推荐阅读