0

我需要将使用 SQL Server 2005 创建的文件导入 R。我需要 R 来读取当前格式,否则我需要为我的数据提供者提供一种方法,以便我的同事可以以 R 可以读取的格式保存,其中 csv 是第一选择。

一位同事向我发送了很多用 MS SQL Server 2005 保存在服务器上的大文件。我在 Windows 7 上使用 R 2.15.1。

使用 RI 正在尝试使用标准技术读取文件。虽然每个文件都有一个 csv 扩展名,但当我转到 Excel 或写字板并保存时,我看到它是 Unicode 文本。记事本指示编码为 Unicode。现在我必须在 Excel 中做一些事情(例如文本到列。每一行完全在 A 列中)并最终保存为真正的 csv 文件,然后我才能将其读入 R 然后使用它。

有没有办法从 R 中解决这个问题?我也愿意接受简单的 SQL Server 2005 解决方案。

我在 R 中尝试了以下操作。

testDF = read.table("Info06.csv", header = TRUE, sep = ",")
testDF2 = iconv(x = testDF, from = "Unicode", to = "")
Error in iconv(x = testDF, from = "Unicode", to = "") : 
  unsupported conversion from 'Unicode' to '' in codepage 1252

# The next line did not produce an error message
testDF3 = iconv(x = testDF, from = "UTF-8" , to = "")

testDF3[1:6, 1:3] 
Error in testDF3[1:6, 1:3] : incorrect number of dimensions

# The next line did not produce an error message
testDF4 = iconv(x = testDF, from = "macroman" , to = "")

testDF4[1:6, 1:3]
Error in testDF4[1:6, 1:3] : incorrect number of dimensions

Encoding(testDF3) 
[1] "unknown"
Encoding(testDF4)
[1] "unknown"

这是写字板的前几行

Date,StockID,Price,MktCap,ADV,SectorID,Days,A1,std1,std2
2006-01-03 00:00:00.000,@Stock1   ,2.53,467108197.38,567381.144444444,4,133.14486997089,-0.0162107939626307,0.0346283580367959,0.0126471695454834
2006-01-03 00:00:00.000,@Stock2   ,1.3275,829803070.531114,6134778.93292,5,124.632223896458,0.071513138376339,0.0410694546850102,0.0172091268025929
4

1 回答 1

1

这取决于您的语言环境设置,但以下对我有用:

read.table("Info06.csv", header = TRUE, sep = ",", fileEncoding = "UCS-2LE")

如果它对您不起作用,我建议使用 Notepad++ 来检测编码。用它打开文件,在“编码”菜单下,当前编码应该用一个点标记。

另请检查有关检测编码的问题。

于 2013-10-09T19:15:30.990 回答