VBTree-package: Vector Binary Tree to Make Your Data Management More...

Description Details Author(s) References See Also Examples

Description

Provides a new data structure, vector binary tree, to make your data visiting and management more efficient. if your data has very structurized column names with specific connecting pattern, it can read, split, and factorize these names, then build the mapping from all string objects to an array or tensor, through vector binary tree, by which the batched data processing can be implemented easily. The methods of array and tensor are also applicable.

Details

This package provide an efficient approach to manage data by structurizing the column names. A column name is generally seen as a character object, while if it has a very organized pattern, such as "*-*-*-*" for example (each * mark presents a different condition), it must has a certain mapping relationship to a specific tensor. This package uses two data structure: double list and vector binary tree, to implement the conversion between the character vector and tensor. It affords various inquiry methods, which was mainly drived by vector binary tree, to extract the highly customizable subset from original data.

Author(s)

ZHANG Chen

Maintainer: ZHANG Chen <447974102@qq.com>

References

Sedgewick, Robert & Wayne, Kevin (2011). Algorithms, 4th Edition.. Addison-Wesley

Prakash, P. K. S. & Rao, Achyutuni Sri Krishna (2016). R Data Structures and Algorithms. Packt Publishing

See Also

to.tensor, pos.tensor.

Examples

 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
#View the data to be visited:
summary(datatest)
colnames(datatest)

#Structurize colnames of data into vector binary tree:
dl <- chrvec2dl(colnames(datatest))
vbt <- dl2vbt(dl)
vbt

#Setting subset in different forms, for example the pattern
#"Strain-(900~1100)-(0.01, 1)-0.6" is desired:
subunregdl <- list(c(1), c(1:5), c(2,4), c(1)) # undifined double list
subregdl <- advbtinq(vbt, subunregdl) # regularized double list
subvbt <- dl2vbt(subregdl) # sub vector binary tree
subts <- vbt2ts(subvbt) # tensor
subarr <- vbt2arr(subvbt) # array
subchrvec <- as.vector(subarr) # character vector

#Visit the data through different methods:
datavisit(datatest, c(1,2,2,1)) # by integer vector
datavisit(datatest, subunregdl) # by handmade double list
datavisit(datatest, subregdl) # by defined double list
datavisit(datatest, subvbt) # by vector binary tree
datavisit(datatest, subts) # by tensor
datavisit(datatest, subarr) # by array
datavisit(datatest, subchrvec) # by character vector

Example output

 Strain-900-0.001-0.6 Stress-900-0.001-0.6 Strain-900-0.01-0.6
 Min.   :0.000090     Min.   : 2.81        Min.   :0.000300   
 1st Qu.:0.003390     1st Qu.: 8.95        1st Qu.:0.002682   
 Median :0.005220     Median :21.07        Median :0.005180   
 Mean   :0.005010     Mean   :30.08        Mean   :0.004912   
 3rd Qu.:0.007045     3rd Qu.:49.20        3rd Qu.:0.007327   
 Max.   :0.008960     Max.   :84.24        Max.   :0.009040   
 Stress-900-0.01-0.6 Strain-900-0.1-0.6 Stress-900-0.1-0.6 Strain-900-1-0.6  
 Min.   : 3.37       Min.   :0.000500   Min.   : 2.670     Min.   :0.000260  
 1st Qu.:10.71       1st Qu.:0.002832   1st Qu.: 7.595     1st Qu.:0.002498  
 Median :27.55       Median :0.005320   Median :17.785     Median :0.004705  
 Mean   :35.88       Mean   :0.004924   Mean   :26.076     Mean   :0.004305  
 3rd Qu.:57.76       3rd Qu.:0.006882   3rd Qu.:39.315     3rd Qu.:0.006157  
 Max.   :95.33       Max.   :0.008330   Max.   :81.400     Max.   :0.007600  
 Stress-900-1-0.6 Strain-950-0.001-0.6 Stress-950-0.001-0.6 Strain-950-0.01-0.6
 Min.   : 2.160   Min.   :0.000560     Min.   : 2.387       Min.   :0.000270   
 1st Qu.: 7.157   1st Qu.:0.002645     1st Qu.: 6.160       1st Qu.:0.002537   
 Median :17.395   Median :0.005470     Median :17.643       Median :0.004865   
 Mean   :26.459   Mean   :0.005073     Mean   :24.389       Mean   :0.004661   
 3rd Qu.:42.470   3rd Qu.:0.007180     3rd Qu.:39.305       3rd Qu.:0.006768   
 Max.   :78.060   Max.   :0.009340     Max.   :68.936       Max.   :0.008640   
 Stress-950-0.01-0.6 Strain-950-0.1-0.6 Stress-950-0.1-0.6 Strain-950-1-0.6  
 Min.   : 2.39       Min.   :0.000000   Min.   : 0.00      Min.   :0.000100  
 1st Qu.: 5.60       1st Qu.:0.002828   1st Qu.: 5.11      1st Qu.:0.002480  
 Median :16.48       Median :0.005275   Median :10.53      Median :0.004510  
 Mean   :25.44       Mean   :0.005228   Mean   :15.53      Mean   :0.004261  
 3rd Qu.:41.03       3rd Qu.:0.007955   3rd Qu.:23.11      3rd Qu.:0.006168  
 Max.   :78.17       Max.   :0.009510   Max.   :48.95      Max.   :0.007480  
 Stress-950-1-0.6 Strain-1000-0.001-0.6 Stress-1000-0.001-0.6
 Min.   : 2.25    Min.   :0.000260      Min.   : 2.950       
 1st Qu.: 7.28    1st Qu.:0.003270      1st Qu.: 4.369       
 Median :17.52    Median :0.005880      Median : 5.024       
 Mean   :24.50    Mean   :0.006108      Mean   : 5.871       
 3rd Qu.:38.03    3rd Qu.:0.009080      3rd Qu.: 7.665       
 Max.   :71.07    Max.   :0.012300      Max.   :10.635       
 Strain-1000-0.01-0.6 Stress-1000-0.01-0.6 Strain-1000-0.1-0.6
 Min.   :0.000520     Min.   :3.640        Min.   :0.000190   
 1st Qu.:0.003182     1st Qu.:4.375        1st Qu.:0.002873   
 Median :0.006360     Median :5.570        Median :0.005715   
 Mean   :0.006232     Mean   :5.696        Mean   :0.005780   
 3rd Qu.:0.009217     3rd Qu.:6.897        3rd Qu.:0.008990   
 Max.   :0.011480     Max.   :8.850        Max.   :0.011160   
 Stress-1000-0.1-0.6 Strain-1000-1-0.6  Stress-1000-1-0.6 Strain-1050-0.001-0.6
 Min.   :3.090       Min.   :0.000200   Min.   :2.810     Min.   :0.000190     
 1st Qu.:4.062       1st Qu.:0.003095   1st Qu.:3.850     1st Qu.:0.002867     
 Median :5.580       Median :0.006165   Median :5.085     Median :0.005400     
 Mean   :5.905       Mean   :0.005970   Mean   :5.322     Mean   :0.005430     
 3rd Qu.:7.598       3rd Qu.:0.008648   3rd Qu.:6.355     3rd Qu.:0.007912     
 Max.   :9.820       Max.   :0.011500   Max.   :8.300     Max.   :0.010320     
 Stress-1050-0.001-0.6 Strain-1050-0.01-0.6 Stress-1050-0.01-0.6
 Min.   : 3.091        Min.   :0.000030     Min.   : 2.669      
 1st Qu.: 7.034        1st Qu.:0.002325     1st Qu.: 5.428      
 Median :15.970        Median :0.004960     Median :11.305      
 Mean   :19.450        Mean   :0.004983     Mean   :15.829      
 3rd Qu.:30.786        3rd Qu.:0.007415     3rd Qu.:24.166      
 Max.   :44.877        Max.   :0.009780     Max.   :43.249      
 Strain-1050-0.1-0.6 Stress-1050-0.1-0.6 Strain-1050-1-0.6  Stress-1050-1-0.6
 Min.   :0.000710    Min.   : 3.090      Min.   :0.000080   Min.   : 2.95    
 1st Qu.:0.003373    1st Qu.: 4.793      1st Qu.:0.002498   1st Qu.: 5.39    
 Median :0.005855    Median : 7.670      Median :0.004885   Median : 9.91    
 Mean   :0.005898    Mean   :11.775      Mean   :0.004587   Mean   :14.32    
 3rd Qu.:0.008735    3rd Qu.:17.562      3rd Qu.:0.006568   3rd Qu.:21.23    
 Max.   :0.010450    Max.   :33.930      Max.   :0.008540   Max.   :41.80    
 Strain-1100-0.001-0.6 Stress-1100-0.001-0.6 Strain-1100-0.01-0.6
 Min.   :0.000500      Min.   : 3.089        Min.   :0.000000    
 1st Qu.:0.003350      1st Qu.: 4.966        1st Qu.:0.002770    
 Median :0.005950      Median : 9.199        Median :0.005635    
 Mean   :0.005888      Mean   :12.320        Mean   :0.005375    
 3rd Qu.:0.008450      3rd Qu.:18.922        3rd Qu.:0.007853    
 Max.   :0.011200      Max.   :30.572        Max.   :0.010380    
 Stress-1100-0.01-0.6 Strain-1100-0.1-0.6 Stress-1100-0.1-0.6
 Min.   : 0.000       Min.   :0.001190    Min.   : 2.810     
 1st Qu.: 4.934       1st Qu.:0.004343    1st Qu.: 4.995     
 Median : 9.203       Median :0.007315    Median : 8.555     
 Mean   :12.631       Mean   :0.006870    Mean   :12.035     
 3rd Qu.:18.730       3rd Qu.:0.009577    3rd Qu.:17.648     
 Max.   :36.425       Max.   :0.011720    Max.   :34.280     
 Strain-1100-1-0.6  Stress-1100-1-0.6 Strain-1150-0.001-0.6
 Min.   :0.000470   Min.   : 3.370    Min.   :0.000000     
 1st Qu.:0.002162   1st Qu.: 4.655    1st Qu.:0.002750     
 Median :0.003980   Median : 6.220    Median :0.005750     
 Mean   :0.004217   Mean   : 7.325    Mean   :0.005538     
 3rd Qu.:0.006315   3rd Qu.: 9.715    3rd Qu.:0.008125     
 Max.   :0.008470   Max.   :15.550    Max.   :0.011000     
 Stress-1150-0.001-0.6 Strain-1150-0.01-0.6 Stress-1150-0.01-0.6
 Min.   : 0.000        Min.   :0.000100     Min.   : 3.091      
 1st Qu.: 4.199        1st Qu.:0.003550     1st Qu.: 7.098      
 Median : 7.179        Median :0.005300     Median :11.998      
 Mean   : 8.262        Mean   :0.005522     Mean   :15.039      
 3rd Qu.:10.630        3rd Qu.:0.007900     3rd Qu.:22.065      
 Max.   :21.447        Max.   :0.010100     Max.   :35.747      
 Strain-1150-0.1-0.6 Stress-1150-0.1-0.6 Strain-1150-1-0.6  Stress-1150-1-0.6
 Min.   :0.000610    Min.   : 2.668      Min.   :0.000310   Min.   : 3.090   
 1st Qu.:0.003780    1st Qu.: 5.801      1st Qu.:0.001830   1st Qu.: 3.790   
 Median :0.006260    Median :10.658      Median :0.004165   Median : 5.870   
 Mean   :0.006118    Mean   :14.597      Mean   :0.004212   Mean   : 6.908   
 3rd Qu.:0.008650    3rd Qu.:21.486      3rd Qu.:0.006085   3rd Qu.: 8.675   
 Max.   :0.010890    Max.   :41.103      Max.   :0.008550   Max.   :14.860   
 Strain-1200-0.001-0.6 Stress-1200-0.001-0.6 Strain-1200-0.01-0.6
 Min.   :0.000540      Min.   : 3.089        Min.   :0.000130    
 1st Qu.:0.003565      1st Qu.: 6.572        1st Qu.:0.002875    
 Median :0.006170      Median :13.585        Median :0.005715    
 Mean   :0.006115      Mean   :13.107        Mean   :0.005550    
 3rd Qu.:0.008377      3rd Qu.:19.273        3rd Qu.:0.008215    
 Max.   :0.011280      Max.   :21.439        Max.   :0.010920    
 Stress-1200-0.01-0.6 Strain-1200-0.1-0.6 Stress-1200-0.1-0.6
 Min.   : 3.231       Min.   :0.000760    Min.   : 3.228     
 1st Qu.: 6.369       1st Qu.:0.003565    1st Qu.: 6.397     
 Median :13.384       Median :0.006385    Median :12.327     
 Mean   :15.523       Mean   :0.006258    Mean   :16.668     
 3rd Qu.:24.729       3rd Qu.:0.008882    3rd Qu.:25.781     
 Max.   :31.553       Max.   :0.011200    Max.   :40.532     
 Strain-1200-1-0.6  Stress-1200-1-0.6
 Min.   :0.000210   Min.   : 2.669   
 1st Qu.:0.002273   1st Qu.: 4.693   
 Median :0.004290   Median : 7.543   
 Mean   :0.004131   Mean   : 9.101   
 3rd Qu.:0.005897   3rd Qu.:12.475   
 Max.   :0.007830   Max.   :21.546   
 [1] "Strain-900-0.001-0.6"  "Stress-900-0.001-0.6"  "Strain-900-0.01-0.6"  
 [4] "Stress-900-0.01-0.6"   "Strain-900-0.1-0.6"    "Stress-900-0.1-0.6"   
 [7] "Strain-900-1-0.6"      "Stress-900-1-0.6"      "Strain-950-0.001-0.6" 
[10] "Stress-950-0.001-0.6"  "Strain-950-0.01-0.6"   "Stress-950-0.01-0.6"  
[13] "Strain-950-0.1-0.6"    "Stress-950-0.1-0.6"    "Strain-950-1-0.6"     
[16] "Stress-950-1-0.6"      "Strain-1000-0.001-0.6" "Stress-1000-0.001-0.6"
[19] "Strain-1000-0.01-0.6"  "Stress-1000-0.01-0.6"  "Strain-1000-0.1-0.6"  
[22] "Stress-1000-0.1-0.6"   "Strain-1000-1-0.6"     "Stress-1000-1-0.6"    
[25] "Strain-1050-0.001-0.6" "Stress-1050-0.001-0.6" "Strain-1050-0.01-0.6" 
[28] "Stress-1050-0.01-0.6"  "Strain-1050-0.1-0.6"   "Stress-1050-0.1-0.6"  
[31] "Strain-1050-1-0.6"     "Stress-1050-1-0.6"     "Strain-1100-0.001-0.6"
[34] "Stress-1100-0.001-0.6" "Strain-1100-0.01-0.6"  "Stress-1100-0.01-0.6" 
[37] "Strain-1100-0.1-0.6"   "Stress-1100-0.1-0.6"   "Strain-1100-1-0.6"    
[40] "Stress-1100-1-0.6"     "Strain-1150-0.001-0.6" "Stress-1150-0.001-0.6"
[43] "Strain-1150-0.01-0.6"  "Stress-1150-0.01-0.6"  "Strain-1150-0.1-0.6"  
[46] "Stress-1150-0.1-0.6"   "Strain-1150-1-0.6"     "Stress-1150-1-0.6"    
[49] "Strain-1200-0.001-0.6" "Stress-1200-0.001-0.6" "Strain-1200-0.01-0.6" 
[52] "Stress-1200-0.01-0.6"  "Strain-1200-0.1-0.6"   "Stress-1200-0.1-0.6"  
[55] "Strain-1200-1-0.6"     "Stress-1200-1-0.6"    
$tree
$tree[[1]]
[1] "Strain" "Stress"

$tree[[2]]
$tree[[2]][[1]]
[1] "900"  "950"  "1000" "1050" "1100" "1150" "1200"

$tree[[2]][[2]]
$tree[[2]][[2]][[1]]
[1] "0.001" "0.01"  "0.1"   "1"    

$tree[[2]][[2]][[2]]
$tree[[2]][[2]][[2]][[1]]
[1] "0.6"

$tree[[2]][[2]][[2]][[2]]
list()





$dims
[1] 2 7 4 1

attr(,"class")
[1] "Vector.Binary.Tree"
$itemid
[1] 6

$colnames
[1] "Strain-950-0.01-0.6"

$coordinate
coo coo coo coo 
  1   2   2   1 

$coldata
 [1] 0.00027 0.00066 0.00073 0.00101 0.00123 0.00128 0.00140 0.00162 0.00173
[10] 0.00195 0.00217 0.00227 0.00250 0.00265 0.00287 0.00308 0.00323 0.00333
[19] 0.00359 0.00386 0.00417 0.00427 0.00446 0.00466 0.00480 0.00493 0.00506
[28] 0.00513 0.00532 0.00550 0.00569 0.00576 0.00599 0.00610 0.00627 0.00642
[37] 0.00670 0.00679 0.00706 0.00721 0.00737 0.00752 0.00767 0.00765 0.00775
[46] 0.00790 0.00805 0.00832 0.00848 0.00864

attr(,"class")
[1] "Trav.Inq.Data"
     itemid colnames               coordinate coldata   
item 2      "Strain-900-0.01-0.6"  Numeric,4  Numeric,50
item 4      "Strain-900-1-0.6"     Numeric,4  Numeric,50
item 6      "Strain-950-0.01-0.6"  Numeric,4  Numeric,50
item 8      "Strain-950-1-0.6"     Numeric,4  Numeric,50
item 10     "Strain-1000-0.01-0.6" Numeric,4  Numeric,50
item 12     "Strain-1000-1-0.6"    Numeric,4  Numeric,50
item 14     "Strain-1050-0.01-0.6" Numeric,4  Numeric,50
item 16     "Strain-1050-1-0.6"    Numeric,4  Numeric,50
item 18     "Strain-1100-0.01-0.6" Numeric,4  Numeric,50
item 20     "Strain-1100-1-0.6"    Numeric,4  Numeric,50
attr(,"class")
[1] "Trav.Inq.Data"
     itemid colnames               coordinate coldata   
item 2      "Strain-900-0.01-0.6"  Numeric,4  Numeric,50
item 4      "Strain-900-1-0.6"     Numeric,4  Numeric,50
item 6      "Strain-950-0.01-0.6"  Numeric,4  Numeric,50
item 8      "Strain-950-1-0.6"     Numeric,4  Numeric,50
item 10     "Strain-1000-0.01-0.6" Numeric,4  Numeric,50
item 12     "Strain-1000-1-0.6"    Numeric,4  Numeric,50
item 14     "Strain-1050-0.01-0.6" Numeric,4  Numeric,50
item 16     "Strain-1050-1-0.6"    Numeric,4  Numeric,50
item 18     "Strain-1100-0.01-0.6" Numeric,4  Numeric,50
item 20     "Strain-1100-1-0.6"    Numeric,4  Numeric,50
attr(,"class")
[1] "Trav.Inq.Data"
     itemid colnames               coordinate coldata   
item 2      "Strain-900-0.01-0.6"  Numeric,4  Numeric,50
item 4      "Strain-900-1-0.6"     Numeric,4  Numeric,50
item 6      "Strain-950-0.01-0.6"  Numeric,4  Numeric,50
item 8      "Strain-950-1-0.6"     Numeric,4  Numeric,50
item 10     "Strain-1000-0.01-0.6" Numeric,4  Numeric,50
item 12     "Strain-1000-1-0.6"    Numeric,4  Numeric,50
item 14     "Strain-1050-0.01-0.6" Numeric,4  Numeric,50
item 16     "Strain-1050-1-0.6"    Numeric,4  Numeric,50
item 18     "Strain-1100-0.01-0.6" Numeric,4  Numeric,50
item 20     "Strain-1100-1-0.6"    Numeric,4  Numeric,50
attr(,"class")
[1] "Trav.Inq.Data"
     itemid colnames               coordinate coldata   
item 2      "Strain-900-0.01-0.6"  Numeric,4  Numeric,50
item 4      "Strain-900-1-0.6"     Numeric,4  Numeric,50
item 6      "Strain-950-0.01-0.6"  Numeric,4  Numeric,50
item 8      "Strain-950-1-0.6"     Numeric,4  Numeric,50
item 10     "Strain-1000-0.01-0.6" Numeric,4  Numeric,50
item 12     "Strain-1000-1-0.6"    Numeric,4  Numeric,50
item 14     "Strain-1050-0.01-0.6" Numeric,4  Numeric,50
item 16     "Strain-1050-1-0.6"    Numeric,4  Numeric,50
item 18     "Strain-1100-0.01-0.6" Numeric,4  Numeric,50
item 20     "Strain-1100-1-0.6"    Numeric,4  Numeric,50
attr(,"class")
[1] "Trav.Inq.Data"
     itemid colnames               coordinate coldata   
item 2      "Strain-900-0.01-0.6"  Numeric,4  Numeric,50
item 4      "Strain-900-1-0.6"     Numeric,4  Numeric,50
item 6      "Strain-950-0.01-0.6"  Numeric,4  Numeric,50
item 8      "Strain-950-1-0.6"     Numeric,4  Numeric,50
item 10     "Strain-1000-0.01-0.6" Numeric,4  Numeric,50
item 12     "Strain-1000-1-0.6"    Numeric,4  Numeric,50
item 14     "Strain-1050-0.01-0.6" Numeric,4  Numeric,50
item 16     "Strain-1050-1-0.6"    Numeric,4  Numeric,50
item 18     "Strain-1100-0.01-0.6" Numeric,4  Numeric,50
item 20     "Strain-1100-1-0.6"    Numeric,4  Numeric,50
attr(,"class")
[1] "Trav.Inq.Data"
     itemid colnames               coordinate coldata   
item 2      "Strain-900-0.01-0.6"  Numeric,4  Numeric,50
item 4      "Strain-900-1-0.6"     Numeric,4  Numeric,50
item 6      "Strain-950-0.01-0.6"  Numeric,4  Numeric,50
item 8      "Strain-950-1-0.6"     Numeric,4  Numeric,50
item 10     "Strain-1000-0.01-0.6" Numeric,4  Numeric,50
item 12     "Strain-1000-1-0.6"    Numeric,4  Numeric,50
item 14     "Strain-1050-0.01-0.6" Numeric,4  Numeric,50
item 16     "Strain-1050-1-0.6"    Numeric,4  Numeric,50
item 18     "Strain-1100-0.01-0.6" Numeric,4  Numeric,50
item 20     "Strain-1100-1-0.6"    Numeric,4  Numeric,50
attr(,"class")
[1] "Trav.Inq.Data"

VBTree documentation built on May 2, 2019, 12:39 p.m.