首页 > 解决方案 > 格式化数据框中的单个变量

问题描述

我有一个简单的问题。我有一个包含文本和数值变量的大型数据集。我想格式化数值变量,但不将它们保存在单独的数据集中并重新合并它们(这将花费很多时间)。

我该怎么做呢?

这是我的意思的一个最小示例:

a <- c("name1", "name2", "name3")
b <- rnorm(3)

df <- data.frame(a=a, b=b)

df<- format(round(df, 3), nsmall=3) 

这给了我一个错误,因为“a”是一个非数字变量。那么我该如何格式化“b”呢?

标签: rdataframe

解决方案


格式化一列:

df$b <- format(round(df$b, 3), nsmall = 3)

如果我们需要格式化许多数字列:

ix <- sapply(df, is.numeric)
df[ ix ] <- format(round(df[ ix ], 3), nsmall = 3)

推荐阅读