当应用函数将整数数据框转换为十进制时,返回因子。

我正试图将一列整数转化为十进制。

CI

14   15  16
17   18  19
20   21  22
CI_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()那么我又得到了整数,而不是小数。

我如何解决这个问题?

解决方案:

而不是 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)

给TA打赏
共{{data.count}}人
人已打赏
解决方案

有没有办法在r中用map或lapply命令传递时间序列数据的子集?

2022-5-14 15:00:33

解决方案

如何在javascriptreact中使用beautify?

2022-5-14 15:00:35

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索