如何在R中使用fread分配列名?

LA_*_*LA_ 5 r data.table

我有以下代码 -

zz3 <- 'data,key
"VA1,VA2,20140524,,0,0,5969,20140523134902,S7,S1147,140,20140523134902,m/t",4503632376496128
"VA2,VA3,20140711,,0,0,8824,20140601095714,S1,S6402,175,20140601095839,m/t",4503643113914368
"VA1,VA3,20140710,,0,0,11678,20140604085203,S1,S1430,250,20140604085329,m/t",4503666467799040
"VA2,VA1,20140724,,0,0,7109,20140523133835,S7,S793,130,20140523133835,m/t",4503679218483200
"VA3,VA1,20140925,,0,0,10592,20140604092548,S7,S109,395,20140604092714,m/t",4503694653521920'

columnClasses <- c("or"="factor", "d"="factor", "ddate"="factor", "rdate"="factor", "changes"="integer", "class"="factor", "price"="integer", "fdate"="factor", "company"="factor", "number"="factor", "dur"="integer", "added"="factor", "source"="factor", "key"="NULL") # skip last column "key"
data <- fread(zz3, header = FALSE, sep = ",", skip = 1, na.strings = c(""), colClasses = columnClasses)
Run Code Online (Sandbox Code Playgroud)

但它返回错误 -

Error in fread(zz3, header = FALSE, sep = ",", skip = 1, na.strings = c(""),  : 
  Column name 'or' in colClasses[[1]] not found
Run Code Online (Sandbox Code Playgroud)

我希望在什么时候colClasses分配列名,header = FALSE但看起来并非如此.

我该怎么解决这个问题?类似的read.csv代码运作良好.

Col*_*vel 5

事实并非如此。

colClasses使您能够使用fread. 假设你有|一个名为“key”的列分割的文件,并且你希望它是一个字符,你将运行命令:fread(filePath, sep='|', colClasses=c(key='character'))

如果文件中没有名称,您可以使用它在读取后setnames为您分配列名称data.table