In [2]:
## 4.8

degree <- 0 ## gatherer for degree
node_interested <- 'A'

data <- read.csv('network.txt', header = FALSE, sep = '-')

for( rn in 1:nrow(data) ) {
    
    if( data[rn, 1] == node_interested || data[rn, 2 ] == node_interested ) {
        degree <- degree + 1
    }
    
}
        
print( paste( 'Degree for', node_interested, 'is', degree ) )
[1] "Degree for A is 6"
In [12]:
## 4.9

in_degree <- 0 ## gatherer for degrees
out_degree <- 0
node_interested <- 'A'


data <- read.csv('directed_network.txt', header = FALSE )

for( rn in 1:nrow(data) ) {
    
    line <- data[rn, 1]
    line <- strsplit( line, "->" )[[1]]
    
    if( line[1] == node_interested  ) {
        out_degree <- out_degree + 1
    }
    
    if( line[2] == node_interested ) {
        in_degree <- in_degree + 1
    }
    
}  
        
print( paste( 'Out degree for', node_interested, 'is', out_degree ) )
print( paste( 'In degree for', node_interested, 'is', in_degree ) )
[1] "Out degree for A is 1"
[1] "In degree for A is 5"
In [13]:
## 4.10

## key observation: degree is actually the column sum on the matrix

degree <- 0 ## gatherer
node_interested <- 1 ## this is the index location of the colum we are interested in

data <- read.csv('adjacency_matrix.txt', header = FALSE )

for( rn in 1:nrow(data) ) {
    degree <- degree + data[ rn, node_interested ]
}

print( degree )
[1] 1
In [ ]: