Subsetting data tables

The following makes use of the data.table package. You may need to install it from CRAN using the code install.packages("data.table") if you want to run this on your computer. (The package is already installed on the notebook container, however.)

library(data.table)
load("bes2010feelings.RData")
setDT(bes2010feelings)
sctl2010feelings <- bes2010feelings[region=="Scotland"]
head(sctl2010feelings)
  flng.brown flng.cameron flng.clegg flng.salmond flng.jones flng.labour
1 8          3            NA         7             6          9         
2 0          3            NA         2            NA         NA         
3 4          5             5         7             3          4         
4 6          5             6         6             4          5         
5 8          6             7         0             9          6         
6 9          3             3         4             7          7         
  flng.cons flng.libdem flng.snp flng.pcym flng.green flng.ukip flng.bnp wave
1  7         5           9       NA         5         NA        NA       Pre 
2 NA        NA          NA       NA        NA         NA        NA       Pre 
3  4         5           7       NA         3          2         0       Pre 
4  4         4           5       NA         1          0         0       Pre 
5  7         5           0       NA         2          3         0       Pre 
6  5         4           6       NA         7          5         7       Pre 
  region  
1 Scotland
2 Scotland
3 Scotland
4 Scotland
5 Scotland
6 Scotland
bes2010feelings.srtd <- bes2010feelings[order(wave,region)]
bes2010feelings.sub <- bes2010feelings[,.(flng.brown,wave,region)]
names(bes2010feelings.sub)
[1] "flng.brown" "wave"       "region"    
str(bes2010feelings.sub)
Classes ‘data.table’ and 'data.frame':	5010 obs. of  3 variables:
 $ flng.brown: num  6 3 8 4 5 5 5 4 7 4 ...
 $ wave      : Factor w/ 2 levels "Pre","Post": 1 1 1 1 1 1 1 1 1 1 ...
 $ region    : Factor w/ 3 levels "England","Scotland",..: 1 NA 1 1 NA 1 1 1 1 1 ...
 - attr(*, ".internal.selfref")=<externalptr> 
head(bes2010feelings.sub)
  flng.brown wave region 
1 6          Pre  England
2 3          Pre  NA     
3 8          Pre  England
4 4          Pre  England
5 5          Pre  NA     
6 5          Pre  England
sctl2010feelings <- bes2010feelings[region=="Scotland",
                                    .(wave,
                                      flng.brown,
                                      flng.cameron,
                                      flng.clegg,
                                      flng.salmond)]
str(sctl2010feelings)
Classes ‘data.table’ and 'data.frame':	872 obs. of  5 variables:
 $ wave        : Factor w/ 2 levels "Pre","Post": 1 1 1 1 1 1 1 1 1 1 ...
 $ flng.brown  : num  8 0 4 6 8 9 NA 1 7 10 ...
 $ flng.cameron: num  3 3 5 5 6 3 NA 3 5 6 ...
 $ flng.clegg  : num  NA NA 5 6 7 3 NA NA 3 6 ...
 $ flng.salmond: num  7 2 7 6 0 4 NA 4 5 8 ...
 - attr(*, ".internal.selfref")=<externalptr> 
head(sctl2010feelings)
  wave flng.brown flng.cameron flng.clegg flng.salmond
1 Pre  8          3            NA         7           
2 Pre  0          3            NA         2           
3 Pre  4          5             5         7           
4 Pre  6          5             6         6           
5 Pre  8          6             7         0           
6 Pre  9          3             3         4