Cập nhật tháng 10 năm 2014: Bây giờ trong v1.9.5
fread
bây giờ chấp nhận dec=','
(và khác phi' . 'dấu tách thập phân), #917. Một đoạn mới đã được thêm vào ?fread
. Nếu bạn sống ở một quốc gia sử dụng dec=','
thì nó chỉ hoạt động. Nếu không, bạn sẽ cần phải đọc đoạn văn cho một bước bổ sung. Trong trường hợp nó bằng cách nào đó phá vỡ dec='.'
, tính năng mới này có thể được tắt với options(datatable.fread.dec.experiment=FALSE)
.
câu trả lời Previous ...
Matt Dowle tìm thấy một công việc thoải mái xung quanh với miền địa phương. Đầu tiên tôi sessionInfo
sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: i386-w64-mingw32/i386 (32-bit)
locale:
[1] LC_COLLATE=French_France.1252 LC_CTYPE=French_France.1252 LC_MONETARY=French_France.1252 LC_NUMERIC=C
[5] LC_TIME=C
...
Cố gắng sau đây cho thấy thủ phạm:
Sys.localeconv()["decimal_point"]
decimal_point
"."
Đang cố gắng để thiết lập các LC_NUMERIC làm việc trên Ubuntu (Matthew) và WinXP (tôi)
Sys.setlocale("LC_NUMERIC", "French_France.1252")
[1] "French_France.1252"
Message d'avis :
In Sys.setlocale("LC_NUMERIC", "French_France.1252") :
changer 'LC_NUMERIC' peut résulter en un fonctionnement étrange de R
Các hành vi là tốt và thay đổi là:
DT = fread("A,B\n3,14;123\n4,22;456\n",sep=";")
str(DT)
Classes ‘data.table’ and 'data.frame': 2 obs. of 2 variables:
$ V1: num 3.14 4.22
$ V2: int 123 456
"." dấu phân cách thập phân hiện được tải dưới dạng chuỗi (vì nó nên), nó là đối diện trước đó.
DT = fread("A,B\n3.14;123\n4.22;456\n",sep=";")
str(DT)
Classes ‘data.table’ and 'data.frame': 2 obs. of 2 variables:
$ V1: chr "3.14" "4.22"
$ V2: int 123 456
Giải pháp thay thế bạn có thể thay bằng trình chỉnh sửa văn bản nhanh. – Roland
Tôi sẽ nói "yêu cầu người bảo trì gói", đặc biệt là vì chức năng này đang được phát triển: http://stackoverflow.com/questions/14124813/data-table-fread-function –
Cảm ơn Roland nhưng tôi có nhiều tệp cùng với một số chuỗi có thể giữ ',' trong tương lai ... và tôi không thực sự muốn thay đổi chúng. Cảm ơn mặc dù cho các đề nghị – statquant