r - 如何通过 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'
}
我收到一个列表对象无法转换为“整数”类型的错误,我在哪里错了?有没有更简单的方法可以使用其中一个应用函数来做到这一点?
解决方案
一个更简单的方法是使用dplyr::mutate_at
:
df <- dplyr::mutate_at(df, c(37:49, 53:61), as.integer)
推荐阅读
- php - PHP XAMPP mail() 已发送,但未发送到邮箱
- python - 来自 tensorflow.examples.tutorials.mnist 不在 Google Colab 中工作
- jquery - Bootstrap-3 不工作:它在一台笔记本电脑上工作,但在另一台笔记本电脑上不工作。为什么会这样?
- python - nargs 输入的 argparse 类型验证
- r - 优化 for 循环以更快地运行
- powershell - " powershelll Mount-DiskImage "系统找不到指定的路径。"
- android - 防止用户操纵 Firestore 数据
- unity3d - 无法在 Unity 的音频源中添加音频剪辑
- mongodb - Mongo DB 聚合管道:将字符串转换为文档/对象
- key - Lazarus IDE 在按键时执行操作