2017-05-07 81 views
0

我需要读取IMDb通过FTP公开可用的数据here。问题是数据并不总是一致的格式。我在下面附加了一小段数据(前几行)。将IMDb数据读入R

我试过使用read.table()sep = '\t',但它不会以100%的精度分割线条。

Here你可以找到样本数据。

如何将此表读入R?

+0

这可能会帮助你https://github.com/hadley/data-movies –

+0

谢谢 - 这是几个星期前我刚开始尝试的东西,但不幸的是,似乎创建者放弃了该项目在它完全完成之前。最终的结果是包含所有电影的数据框,但只有一些变量(流派,评级,投票,但没有演员等) – tsouchlarakis

+0

但是,代码指导您解决问题。看到我的答案。 –

回答

1

使用普通readLines然后strsplit每行\\t+

file <- readLines("PATHTO/actorstest.txt", encoding = 'Latin-1') 

# delete empty rows 
file <- subset(file, !grepl('^\\s*$', file)) 

# split in two columns by one or more tabs 
file <- strsplit(x = file, split = '\\t+') 

# row bind all itms and create df 
df <- data.frame(do.call(rbind, lapply(file, unlist))) 
df 

导致

     X1               X2 
1   Aa, Brynjar      Adj¯ solidaritet (1985) [P¯nker] <40> 
2    Aa, Henk  Cuby + Blizzards: 40 jaar de blues (2006) (V) [Himself] 
3  Aa, Henk van der "De slimste mens ter wereld" (2012) {(#5.10)} [Himself] <4> 
4      "De slimste mens ter wereld" (2012) {(#5.11)} [Himself] <3> 
5       "De slimste mens ter wereld" (2012) {(#5.8)} [Himself] <3> 
6       "De slimste mens ter wereld" (2012) {(#5.9)} [Himself] <4> 
7  Aab, Vanessa (I)        Frollein FrappÈ (2014) [Greta] 
8              Nach einem Traum (2014) [Elke] 
9   Aabear, Jim      Paradise Recovered (2010) [Richard] <8> 
10               Senses (2009) [Mr. Cohen] 
11  Aabed, Essam Abu        Omar (2013) [Omar's Boss] <10> 
12 Aabedlaoui, El Hassan       La vache (2016) [Aissaoui 2] <80> 
13    Aabeel          Czeski Friends (2004) (V) 
14   Aabel, Anders           Kontakt! (1956) <7> 

注意,有些演员有两列多个条目。我留下来捕捉到你。

+0

非常感谢!正是我在找什么。 – tsouchlarakis