r - 控制 write.csv 中 R 中的数字

标签 r csv

我想将一个数据框写入 csv,其中包含数字列和字符列。

有些数字列是整数,我想显示为整数,有些是小数,我需要控制小数后的位数,并且字符列显然没有变化

我该怎么做? 等式该数据框中的特定行是

XYZ  8200  0.306060606 ABC

输出应该是

XYZ 8200 0.30 ABC

问候

最佳答案

这将强制小数点后两位数字:

# read in some sample data
xyz <- data.frame(v1 = c("a", "b"), 
                  v2 = c(8200, 8100), 
                  v3 = c(365.2121, 365.2122), 
                  v4 = c(0.3060, 0.3260))

format(xyz, digits=2, nsmall=2)
#  v1      v2     v3   v4
#1  a 8200.00 365.21 0.31
#2  b 8100.00 365.21 0.33

如果您不希望包含整数的列也具有这些小数位(例如本例中的列 v2),您可以执行诸如将 xyz 拆分为需要格式化的列和其他列:

numbs2format <- 
    xyz[, (sapply(xyz, function(x) isTRUE(sum(x %% 1) > 0)))]
# ignore the warnings from trying to use %% on non-numerics
other.columns <- 
    xyz[, (sapply(xyz, function(x) !isTRUE(sum(x %% 1) > 0)))]

cbind(other.columns, format(numbs2format, digits=2, nsmall=2))
#  v1   v2     v3   v4
#1  a 8200 365.21 0.31
#2  b 8100 365.21 0.33

关于r - 控制 write.csv 中 R 中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30283454/

相关文章:

csv - 创建一个 HIVE 表,根据列中的值从 HDFS 中的 .csv 中过滤数据

c++ - 使用 Rfc4180CsvParser 将 CSV 导入 Vertica 并排除标题行

R Shiny : fast reactive image display

r - 为什么在quadprog中找不到 '.QP_qpgen2'?

R-创建具有名称的多个数据框

r - 让 readline 等待 R 中的输入

Python递归执行try except while条件满足

python - 从 csv 文件创建 mne 数组

R:动态更新公式

xml - 解析 XML 并找到字符串的所有实例