使用dplyr在R中将多列转换为双精度类型

我有一个数据框,其中包含许多包含字符串格式的十进制值的列,我正在尝试找到一种方法将所有包含数值的列转换为双精度类型。例如,通过指定要转换的列范围,在本例中为 df[2:4]。

由此:

df <- data_frame(cat = c('A', 'B', 'C'), 
             X11 = c('0.1', '0.3', '0.5'), 
             Y2 = c('0.2', '0.2', '0.7'), 
             P3 = c('0.14', '0.31', '0.35'),
             type = c('H', 'I', 'J'))

对此:

df <- data_frame(cat = c('A', 'B', 'C'), 
             X11 = c(0.1, 0.3, 0.5), 
             Y2 = c(0.2, 0.2, 0.7), 
             P3 = c(0.14, 0.31, 0.35),
             type = c('H', 'I', 'J'))

我一直试图让它与不同的 dplyr mutate 函数一起工作,但我不知道如何去做。

如果我能就此获得一些建议,我将不胜感激。

回答

这将是更好地做到这一点type.convertbase R它基于每一列中的值自动修正型

df1 <- type.convert(df, as.is = TRUE)

在 中dplyr,可以across使用数字索引来完成并指定列的范围

df %>%
   mutate(across(2:4, as.numeric))

或列名范围

df %>%
   mutate(across(X11:P3, as.numeric))


以上是使用dplyr在R中将多列转换为双精度类型的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>