【发布时间】:2018-04-27 08:39:31
【问题描述】:
我想以这样一种方式应用 strsplit,如果存在一对相同的值与 &(例如,这是一对与 & (NINA & SAM)),也与 | (例如,这是另一对,但带有 | (NINA | SAM))然后保留带有 & 的一对
以下是 2 种可能的情况,这些向量 (vec1, vec2) 的长度可能因实际情况而异。
案例一
> vec1
[1] "((PAUL & SAM) | (PAUL | SAM) | (NINA & SAM) | (NINA | SAM) | (NINA & PAUL) | (NINA | PAUL))"
> vec2
[1] "((PAUL | SAM) & (PAUL & SAM) & (NINA | SAM) & (NINA | PAUL) & (NINA & PAUL) & (NINA & SAM))"
案例 2
> vec1
[1] "((PAUL | SAM) | (PAUL & SAM) | (!NINA & SAM) | (!NINA & PAUL))"
> vec2
[1] "((PAUL | SAM) & (PAUL & SAM) & (!NINA & SAM) & (!NINA & PAUL))"
这应该是输出:
案例一
> vec1
[1] "((PAUL & SAM) | (NINA & SAM) | (NINA & PAUL))"
> vec2
[1] "((PAUL & SAM) & (NINA & PAUL) & (NINA & SAM))"
案例 2
> vec1
[1] "((PAUL & SAM) | (!NINA & SAM) | (!NINA & PAUL))"
> vec2
[1] "((PAUL & SAM) & (!NINA & SAM) & (!NINA & PAUL))"
到目前为止我所尝试的:
我的想法是首先从向量的开头和结尾删除 (( 和 )),然后将 vec1 拆分为 ") | (" ,将 vec2 拆分为 ") & (" 。然后进一步拆分space*space 上的索引并检查子索引1 和2 是否与任何其他子索引匹配,如果是,则保留具有& 的索引。然后把所有东西放回去。我对 R 的了解有限,无法实现我的想法。任何帮助将不胜感激!
【问题讨论】: