Merge flextable cells vertically when consecutive cells have identical values. Text of formatted values are used to compare values if available.
Two options are available, either a column-by-column algorithm or an algorithm where the combinations of these columns are used once for all target columns.
merge_v(x, j = NULL, target = NULL, part = "body", combine = FALSE)
flextable
object
column to used to find consecutive values to be merged. Columns from orignal dataset can also be used.
columns names where cells have to be merged.
partname of the table where merge has to be done.
If the value is TRUE, the columns defined by j
will
be combined into a single column/value and the consecutive values of
this result will be used. Otherwise, the columns are inspected one
by one to perform cell merges.
Other flextable merging function:
merge_at()
,
merge_h()
,
merge_h_range()
,
merge_none()
ft_merge <- flextable(mtcars)
ft_merge <- merge_v(ft_merge, j = c("gear", "carb"))
ft_merge
mpg
cyl
disp
hp
drat
wt
qsec
vs
am
gear
carb
21.0
6
160.0
110
3.90
2.620
16.46
0
1
4
4
21.0
6
160.0
110
3.90
2.875
17.02
0
1
22.8
4
108.0
93
3.85
2.320
18.61
1
1
1
21.4
6
258.0
110
3.08
3.215
19.44
1
0
3
18.7
8
360.0
175
3.15
3.440
17.02
0
0
2
18.1
6
225.0
105
2.76
3.460
20.22
1
0
1
14.3
8
360.0
245
3.21
3.570
15.84
0
0
4
24.4
4
146.7
62
3.69
3.190
20.00
1
0
4
2
22.8
4
140.8
95
3.92
3.150
22.90
1
0
19.2
6
167.6
123
3.92
3.440
18.30
1
0
4
17.8
6
167.6
123
3.92
3.440
18.90
1
0
16.4
8
275.8
180
3.07
4.070
17.40
0
0
3
3
17.3
8
275.8
180
3.07
3.730
17.60
0
0
15.2
8
275.8
180
3.07
3.780
18.00
0
0
10.4
8
472.0
205
2.93
5.250
17.98
0
0
4
10.4
8
460.0
215
3.00
5.424
17.82
0
0
14.7
8
440.0
230
3.23
5.345
17.42
0
0
32.4
4
78.7
66
4.08
2.200
19.47
1
1
4
1
30.4
4
75.7
52
4.93
1.615
18.52
1
1
2
33.9
4
71.1
65
4.22
1.835
19.90
1
1
1
21.5
4
120.1
97
3.70
2.465
20.01
1
0
3
15.5
8
318.0
150
2.76
3.520
16.87
0
0
2
15.2
8
304.0
150
3.15
3.435
17.30
0
0
13.3
8
350.0
245
3.73
3.840
15.41
0
0
4
19.2
8
400.0
175
3.08
3.845
17.05
0
0
2
27.3
4
79.0
66
4.08
1.935
18.90
1
1
4
1
26.0
4
120.3
91
4.43
2.140
16.70
0
1
5
2
30.4
4
95.1
113
3.77
1.513
16.90
1
1
15.8
8
351.0
264
4.22
3.170
14.50
0
1
4
19.7
6
145.0
175
3.62
2.770
15.50
0
1
6
15.0
8
301.0
335
3.54
3.570
14.60
0
1
8
21.4
4
121.0
109
4.11
2.780
18.60
1
1
4
2
data_ex <- structure(list(srdr_id = c(
"175124", "175124", "172525", "172525",
"172545", "172545", "172609", "172609", "172609"
), substances = c(
"alcohol",
"alcohol", "alcohol", "alcohol", "cannabis",
"cannabis", "alcohol\n cannabis\n other drugs",
"alcohol\n cannabis\n other drugs",
"alcohol\n cannabis\n other drugs"
), full_name = c(
"TAU", "MI", "TAU", "MI (parent)", "TAU", "MI",
"TAU", "MI", "MI"
), article_arm_name = c(
"Control", "WISEteens",
"Treatment as usual", "Brief MI (b-MI)", "Assessed control",
"Intervention", "Control", "Computer BI", "Therapist BI"
)), row.names = c(
NA,
-9L
), class = c("tbl_df", "tbl", "data.frame"))
ft_1 <- flextable(data_ex)
ft_1 <- theme_box(ft_1)
ft_2 <- merge_v(ft_1,
j = "srdr_id",
target = c("srdr_id", "substances")
)
ft_2
srdr_id
substances
full_name
article_arm_name
175124
alcohol
TAU
Control
MI
WISEteens
172525
alcohol
TAU
Treatment as usual
MI (parent)
Brief MI (b-MI)
172545
cannabis
TAU
Assessed control
MI
Intervention
172609
alcohol
cannabis
other drugs
TAU
Control
MI
Computer BI
MI
Therapist BI