R用逗号格式化数据表

时间:2014-04-23 19:05:33

标签: r

我有一个数据表,我想用逗号格式化数字。

她是我的代码:

data<- data.frame(x = c(100000,4000000,6000000),y=c(43125343243, 3421341234,  324134314343))
data
formatC(data, format="d", big.mark=',')
data

我收到错误:

  Error in formatC(data, format = "d", big.mark = ",") : 
   (list) object cannot be coerced to type 'integer'
 In addition: Warning message:
 In formatC(data, format = "d", big.mark = ",") : class of 'x' was discarded

有什么想法吗? 谢谢!

2 个答案:

答案 0 :(得分:2)

问题是“数据”是一个数据框,您没有指定要操作的列。但是,由于某种原因formatC format = "d"(对于整数)format = "fg"时,apply没有处理,因此您可以将其更改为format(对于实数)并使用您的列循环它apply(data, 2, function(x) formatC(x, format="fg", big.mark=',')) # x y # [1,] "100,000" "43,125,343,243" # [2,] "4,000,000" "3,421,341,234" # [3,] "6,000,000" "324,134,314,343" 。 您也可以使用“普通”format

apply(data, 2, function(x) format(x, big.mark= ",", scientific = F))
#                x                 y                
# [1,] "  100,000" " 43,125,343,243"
# [2,] "4,000,000" "  3,421,341,234"
# [3,] "6,000,000" "324,134,314,343"

或使用“普通”{{1}}

{{1}}

第二个解决方案需要修剪数字,所以我会坚持使用第一个

答案 1 :(得分:0)

如果您只想将其转储到屏幕上,可以使用write.csv而不使用文件名参数:

write.csv(data)

如果要删除行号和引号,可以执行以下操作:

write.csv(data, quote=F, row.names=F)

输出:

x,y
1e+05,43125343243
4e+06,3421341234
6e+06,324134314343