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.
Arguments
- x
flextable
object- j
column to used to find consecutive values to be merged. Columns from orignal dataset can also be used.
- target
columns names where cells have to be merged.
- part
partname of the table where merge has to be done.
- combine
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.
See also
Other flextable merging function:
merge_at()
,
merge_h()
,
merge_h_range()
,
merge_none()
Examples
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