2014-04-23 58 views
0

我有一個數據表,我想用逗號格式化數據表。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 

任何想法? 謝謝!

+0

你想這只是爲了打印到控制檯的目的? – Thomas

+0

@Shambho,據我所知,你不能將自己的東西添加到原來的帖子... –

+0

@Devon_C_Miller請在審批建議的編輯時密切注意。這是由_different_用戶在其問題中添加自己的問題所做的修改。甚至不適合。 – joran

回答

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 
2

的問題是,「數據」是一個數據框,你不指定您想要操作的列。雖然由於某種原因,formatCformat = "d"(對於整數)時不適用於列y,所以您可以將其更改爲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" 

第二個解決方案將需要修剪的數字,所以我就堅持使用第一個