首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当应用函数将整数的数据转换为十进制时返回因子

问当应用函数将整数的数据转换为十进制时返回因子
EN

Stack Overflow用户
提问于 2020-04-23 19:09:36
回答 1查看 16关注 0票数 1

我正在尝试将整数列转换为十进制:

CI

代码语言:javascript
复制
14   15  16
17   18  19
20   21  22
代码语言:javascript
复制
CI_decimal<-as.data.frame(apply(CI, 2, function(x) format(x, nsmall=3)))

在应用此方法时,我获得:

代码语言:javascript
复制
14.000  15.000  16.000
17.000  18.000  19.000
20.000  21.000  22.000

问题是,现在这个值已经转化为各种因素。

如果我再次将每一列转换为数字as.numeric(),那么我将获得再次整数,而不是小数。

我怎么才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-23 19:11:03

而不是apply,我们可以使用lapply并将其分配回原始数据集。

代码语言:javascript
复制
CI[] <- lapply(CI, format, nsmall = 2)

或者另一个选择是dplyr

代码语言:javascript
复制
library(dplyr)
CI_NEW <- CI %>%
               mutate_all(format, nsmall = 2)

问题是apply返回character输出,as.data.frame默认对非数字元素使用stringsAsFactors = TRUE。它可以在原始代码中使用stringsAsFactors = FALSE进行更正。

代码语言:javascript
复制
as.data.frame(apply(CI, 2, function(x) 
       format(x, nsmall=3)), stringsAsFactors = FALSE)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61395156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档