将非表格txt或csv导入R

时间:2019-05-12 07:53:59

标签: r import

我想将txt文件导入R。此txt文件由用空格分隔的多个单词组成,每行具有不同的任意数量的单词,因此在导入时,我得到:

file<-read.table("paraules.txt",fileEncoding="latin1",header=F)

Error in read.table("paraules.txt", fileEncoding = "latin1", header = F) : 
  more columns than column names

我该如何处理?是否可以导入带有不同数量“列”的txt文件,还是应该编辑txt文件使其可导出?

编辑:我的txt文件的第一行。如您所见,单词的数量与每一行都不相同,并且每一列之间都没有关系。另外,还有特殊字符:

fitxer,edició,format,visualització,ajuda,sense,títol,llibreta,aigua,llet,casa
finestra,taula,tecla,teclat,dit,ungla,nas,boca,orella,cap,altre,jugar,joc,jugador
canell,rellotge,teclejar,ordinador,mòbil,procedir,model,transformació,gràfic

谢谢

1 个答案:

答案 0 :(得分:0)

scan()readLines()应该这样做。

h <- "fitxer,edició,format,visualització,ajuda,sense,títol,llibreta,aigua,llet,casa
finestra,taula,tecla,teclat,dit,ungla,nas,boca,orella,cap,altre,jugar,joc,jugador
canell,rellotge,teclejar,ordinador,mòbil,procedir,model,transformació,gràfic"
writeLines(h, "h.txt")

如您所见,输出量略有不同,并且scan()在处理数据方面最灵活。确切的操作方式取决于您打算在以后使用哪些数据。

scan("h.txt", what="", sep="\n")
# Read 3 items
# [1] "fitxer,edició,format,visualització,ajuda,sense,títol,llibreta,aigua,llet,casa"    
# [2] "finestra,taula,tecla,teclat,dit,ungla,nas,boca,orella,cap,altre,jugar,joc,jugador"
# ...
# 
scan("h.txt", what="", sep=",")
# Read 34 items
#  [1] "fitxer"  "edició"    "format" "visualització" "ajuda"  "sense"        
#  [7] "títol"   "llibreta"  "aigua"  "llet"          "casa"   "finestra"     
# ...

readLines("h.txt")
# [1] "fitxer,edició,format,visualització,ajuda,sense,títol,llibreta,aigua,llet,casa"    
# [2] "finestra,taula,tecla,teclat,dit,ungla,nas,boca,orella,cap,altre,jugar,joc,jugador"
# ...