forked from johnmyleswhite/r_recommendation_system
-
Notifications
You must be signed in to change notification settings - Fork 0
/
extract_graphs.R
63 lines (47 loc) · 1.45 KB
/
extract_graphs.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/usr/bin/Rscript
source('lib/load_libraries.R')
source('lib/utilities.R')
field.names <- list('depends' = 'Depends',
'suggests' = 'Suggests',
'imports' = 'Imports')
date <- '08282010'
setwd(paste('/Users/johnmyleswhite/Statistics/Datasets/CRAN_', date, sep = ''))
package.tarballs <- dir('.')
depends <- data.frame()
suggests <- data.frame()
imports <- data.frame()
for (package.tarball in package.tarballs)
{
package.name <- str_extract(package.tarball, '[^_]+')
print(paste('Processing', package.name))
system(paste('tar xfz', package.tarball))
setwd(package.name)
if (! file.exists('DESCRIPTION'))
{
print(paste(package.name, 'has no DESCRIPTION file.'))
next()
}
for (type in c('depends', 'suggests', 'imports'))
{
linked.packages <- parse.description(field.names[[type]])
if (length(linked.packages) > 0)
{
for (linked.package in linked.packages)
{
assign(type,
rbind(get(type),
data.frame(Package = package.name,
LinkedPackage = linked.package)))
}
}
}
setwd('..')
system(paste('rm -rf', package.name))
}
for (type in c('depends', 'suggests', 'imports'))
{
write.csv(get(type),
file = file.path('/Users/johnmyleswhite/Statistics/cran_contest/data',
paste(type, '.csv', sep = '')),
row.names = FALSE)
}