daff: Diff, Patch and Merge for Data.frames
データフレームの差分や結合をおこなう
> library(daff)
バージョン: 0.1.4
| 関数名 | 概略 | 
|---|---|
daff | 
Data diff, patch and merge for R | 
diff_data | 
Do a data diff | 
differs_from | 
differs from, | 
merge_data | 
Merge two tables based on a parent version | 
patch_data | 
patch data | 
render_diff | 
Render a data diff to html | 
which_conflicts | 
return which rows of a merged 'data.frame' contain conflicts | 
write_diff | 
Write or read a diff to or from a file | 
diff_data
> x <- iris
> x[1,1] <- 10
> diff_data(x, iris)
@@,Sepal.Length,Sepal.Width,Petal.Length,Petal.Width,Species
->,10->5.1,3.5,1.4,0.2,setosa
,4.9,3,1.4,0.2,setosa
...,...,...,...,...,...
merge_data
> parent <- a <- b <- iris[1:3,]
> a[1,1] <- 10
> b[2,1] <- 11
> # succesful merge
> merge_data(parent, a, b)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1         10.0         3.5          1.4         0.2  setosa
2         11.0         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
patch_data
> x <- iris
> #change a value
> x[1,1] <- 1000
> patch <- diff_data(iris, x)
> print(patch)
@@,Sepal.Length,Sepal.Width,Petal.Length,Petal.Width,Species
->,5.1->1000,3.5,1.4,0.2,setosa
,4.9,3,1.4,0.2,setosa
...,...,...,...,...,...
> # apply patch
> iris_patched <- patch_data(iris, patch)
> iris_patched[1,1] == 1000
[1] TRUE
render_diff
> y <- iris[1:3,]
> x <- y
> 
> x <- head(x,2) # remove a row
> x[1,1] <- 10 # change a value
> x$hello <- "world"  # add a column
> x$Species <- NULL # remove a column
> 
> patch <- diff_data(y, x)
> render_diff(patch)