r - 格式化r中数据框上的列
问题描述
我想格式化数据框的某些列,更改小数点和小数位数
a <- c(3.412324463,3.2452364)
b <- c(2.2342,4.234234)
c <- data.frame(A=a, B=b)
我可以逐列进行,但宁愿将其应用于各个列,我也找不到小数位数。"digits=2" 只给我数字,包括小数部分
c$A <- format(c$A, decimal.mark = ",",digits = 2)
解决方案
最好不要使用函数名 ( c
) 来命名对象。将 应用于format
所有列
c[] <- lapply(c, format, decimal.mark = ",", digits = 2)
或与formatC
c[] <- lapply(c, formatC, decimal.mark =",", format = "f", digits = 2)
如果我们需要应用到选定的多个列,即列 1 到 3 和 7:10
j1 <- c(1:3, 7:10)
c[j1] <- lapply(c[j1, formatC, decimal.mark =",", format = "f", digits = 2)
或另一种选择sprintf
c[] <- lapply(c, function(x) sub(".", ",", sprintf("%0.2f", x), fixed = TRUE))
推荐阅读
- python - 由于 exp 中遇到溢出,无法在 Python(在 Spyder 上)中集成大指数,但适用于 WolframAlpha
- python - 如何比较目录中的文件内容与使用 python 的 csv 文件的差异?
- python - 无法在 Django VScode 中执行 runserver
- android - 后退按钮不会返回
- javascript - 如何创建像coin360和市场地图这样的svg页面?
- c# - 如何在 Razor 页面中重用 Startup.cs?
- sql-server - 移动或重新停靠选项卡时 Microsoft SSMS 崩溃
- swift - NavigationLink 不适用于 SwiftUI 3.0 上的新 .searchable 修饰符
- javascript - 如何为给定的 HTML 内容添加翻页动画
- python - Django中的自动注销特定用户