Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改由管道和引号分隔的文本文件的编码,以便将其读入R?_R_Windows_Encoding_File Import - Fatal编程技术网

如何更改由管道和引号分隔的文本文件的编码,以便将其读入R?

如何更改由管道和引号分隔的文本文件的编码,以便将其读入R?,r,windows,encoding,file-import,R,Windows,Encoding,File Import,我想将文本文件中的数据读入R数据框。数据由管道|分隔,并且在值周围有引号。我尝试了一些组合read.table,但它将所有内容导入到单个字段中,而不是拆分它。数据如下所示: "CompetitorDataID"|"CompetitorID"|"ItemID"|"UserID"|"CountryID"|"SegmentID"|"TaskID"|"Price"|"Comment"|"CreateDate"|"GeneralCustomer"|"TenderResult" "29"|"5"|"1876

我想将文本文件中的数据读入R数据框。数据由管道
|
分隔,并且在值周围有引号。我尝试了一些组合
read.table
,但它将所有内容导入到单个字段中,而不是拆分它。数据如下所示:

"CompetitorDataID"|"CompetitorID"|"ItemID"|"UserID"|"CountryID"|"SegmentID"|"TaskID"|"Price"|"Comment"|"CreateDate"|"GeneralCustomer"|"TenderResult"
"29"|"5"|"187630"|"1375"|"5"|"398"|"4085"|"5.000000"|"test"|"2013-01-1002:58:23.230000000"|"False"|"1"
"30"|"5"|"1341"|"1294"|"5"|"398"|"4088"|"6.000000"|"test"|"2013-01-1003:15:26.687000000"|"False"|"1"
"31"|"5"|"1007"|"1375"|"5"|"398"|"4105"|"5.000000"|""|"2013-01-1005:50:51.150000000"|"False"|"1"
虽然此代码在粘贴到R中时将导入,但它无法从原始文本文件中工作。我收到以下错误消息:

Warning messages:
1: In read.table("competitorDataCopy.txt", header = TRUE, sep = "|") :
  line 1 appears to contain embedded nulls
2: In read.table("competitorDataCopy.txt", header = TRUE, sep = "|") :
  line 2 appears to contain embedded nulls
3: In read.table("competitorDataCopy.txt", header = TRUE, sep = "|") :
  line 3 appears to contain embedded nulls
4: In read.table("competitorDataCopy.txt", header = TRUE, sep = "|") :
  line 4 appears to contain embedded nulls
5: In read.table("competitorDataCopy.txt", header = TRUE, sep = "|") :
  line 5 appears to contain embedded nulls
6: In read.table("competitorDataCopy.txt", header = TRUE, sep = "|") :
  line 1 appears to contain embedded nulls
7: In scan(file = file, what = what, sep = sep, quote = quote, dec = dec,  :
  embedded nul(s) found in input
设置sep=“|”似乎适合我。
read.table
的默认参数是
quote=“\”
,因此它将自动从值的开头/结尾删除引号

read.table(text='"CompetitorDataID"|"CompetitorID"|"ItemID"|"UserID"|"CountryID‌​
"|"SegmentID"|"TaskID"|"Price"|"Comment"|"CreateDate"|"GeneralCustomer"|"TenderRe‌​sult" 
"29"|"5"|"187630"|"1375"|"5"|"398"|"4085"|"5.000000"|"test"|"2013-01-10     02:58:23.230000000"|"False"|"1" 
"30"|"5"|"1341"|"1294"|"5"|"398"|"4088"|"6.000000"|"test"|"2013-01-10     03:15:26.687000000"|"False"|"1" 
"31"|"5"|"1007"|"1375"|"5"|"398"|"4105"|"5.000000"|""|"2013-01-10 05:50:51.150000000"|"False"|"1"'
, sep="|", header=T)

我已通过在记事本中打开文件并将编码从Unicode更改为ANSI解决了此问题。我不确定这会有什么不同,但它现在可以干净地导入。

您可以通过以下方式轻松导入管道分隔的.txt文件:

file_in <- read.table("C:/example.txt", sep = "|")

“代码>阅读”表(文本)文本=“““竞争对手”表(文本=““竞争对手”表(文本=““竞争对手”表(文本);“竞争对手”表(文本>文件>文件>文件>文件”中设置设置<代码>文件>文件”中设置<代码>文件>文件>中设置<代码>sep>sep>sep>sep>sep>sep>sep>sep>sep>sep>sep>sep>sep>sep>sep>文件>文件>文件中设置<<<<<<<<<<<<<<<<代码>文件>文件>文件>文件中设置设置设置设置设置<<<<<<<<<<<代码>文件>文件>文件>中设置设置设置<<<<<代码>文件>文件>文件<<<<<<<<<<代码>文件>文件>文件>文件>文件>文件>文件>文件>中设置设置设置设置设置<<02:58:23.230000000“假”1“30”5“4.8”甲“6.000000”甲“测试”甲“测试”甲,“2013-01-10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11“;;;“12”4 4 4 4 4 4 4 4 4 4”4 4”4 4”4 4”4”4 4 4”4”4”4”4”4 4”4”4”4”4”4”4”4”4”4”4”4”4”4”4 4”4”4”4”4”4”4”4”4”4”4”4”4”4”4”6.8”甲甲甲甲甲“测试”4”4”4”4”4”甲甲甲“测试”4”测试”测试”测试”4”3”回答。您的实际问题是在Windows下读取编码有缺陷的文件,请相应地编辑问题。这与读取引用的PSV文件无关。这将误导其他用户。此解决方案仅适用于示例中粘贴的数据,而不适用于原始文本文件。我已经更新了我的问题,以尽量更清楚,因为我原来的问题不够详细。这并不是在R中读取PSV的真正解决方案。如果实际问题是在Windows下读取编码有缺陷的文件,请相应地编辑问题。