我正在尝试在R中按不同条件连接特定行值(字符串
)。 我已在Flag
中标记了行值(在此示例中,标记标准无关紧要)。
符号说明:B为运行的开始,E为结束。 0表示在运行范围之外。 1表示运行中除B和E之外的任何字符串。你的解决方案不需要遵循我的约定。
规则:每个运行必须以B开头并以E结尾。运行中可以有任意数量的1 。在B和E(两者都包括在内)之间定位的任何字符串
都将按其在运行中的位置顺序连接,并替换B -string。. 0-string将保留在数据框中。连接后1 和E 字符串将被删除。
我还没有想到与期望输出接近的任何东西。
set.seed(128)
df2 <- data.frame(Strings = sample(letters, 17, replace = T),
Flag = c(0,"B",1,1,"E","B","E","B","E",0,"B",1,1,1,"E",0,0))
Strings Flag
1 d 0
2 r B
3 q 1
4 r 1
5 v E
6 f B
7 y E
8 u B
9 c E
10 x 0
11 h B
12 w 1
13 x 1
14 t 1
15 j E
16 d 0
17 j 0
中间输出。
Strings Flag Result
1 d 0 d
2 r B r q r v
3 q 1 q
4 r 1 r
5 v E v
6 f B f y
7 y E y
8 u B u c
9 c E c
10 x 0 x
11 h B h w x t j
12 w 1 w
13 x 1 x
14 t 1 t
15 j E j
16 d 0 d
17 j 0 j
期望的产出。
Result
1 d
2 r q r v
3 f y
4 u c
5 x
6 h w x t j
7 d
8 j