我正在尝试将整数列转换为十进制:
CI
14 15 16
17 18 19
20 21 22CI_decimal<-as.data.frame(apply(CI, 2, function(x) format(x, nsmall=3)))在应用此方法时,我获得:
14.000 15.000 16.000
17.000 18.000 19.000
20.000 21.000 22.000问题是,现在这个值已经转化为各种因素。
如果我再次将每一列转换为数字as.numeric(),那么我将获得再次整数,而不是小数。
我怎么才能解决这个问题?
发布于 2020-04-23 19:11:03
而不是apply,我们可以使用lapply并将其分配回原始数据集。
CI[] <- lapply(CI, format, nsmall = 2)或者另一个选择是dplyr
library(dplyr)
CI_NEW <- CI %>%
mutate_all(format, nsmall = 2)问题是apply返回character输出,as.data.frame默认对非数字元素使用stringsAsFactors = TRUE。它可以在原始代码中使用stringsAsFactors = FALSE进行更正。
as.data.frame(apply(CI, 2, function(x)
format(x, nsmall=3)), stringsAsFactors = FALSE)https://stackoverflow.com/questions/61395156
复制相似问题