stata:删除指定字符最后一次出现后的所有内容
我的数据是这样的 Varstata:删除指定字符最后一次出现后的所有内容,stata,Stata,我的数据是这样的 Var A(c)| B(/c/)| c.c F|G9 K|S|V|S F|A 我想在Stata中最后一次出现字符“|”之前获取所有内容,如下所示: NewVar Var A(c)| B(/c/)| F| K|S|V| F| egen NewVar=ends(Var), punct(|) last trim 最后一次出现字符“|”后可以给我一切。但是我还没有找到一种方法在角色最后一次出现之前获得所有东西。谢谢大家! 这里有一种方法: clear input str21
A(c)| B(/c/)| c.c
F|G9
K|S|V|S
F|A 我想在Stata中最后一次出现字符“|”之前获取所有内容,如下所示: NewVar
Var
A(c)| B(/c/)|
F|
K|S|V|
F|
egen NewVar=ends(Var), punct(|) last trim
最后一次出现字符“|”后可以给我一切。但是我还没有找到一种方法在角色最后一次出现之前获得所有东西。谢谢大家! 这里有一种方法:
clear
input str21 Var
"A (c) | B(/ c/) | C.c"
"F | G9"
"K | S | V | S"
"F | A"
end
gen Wanted = reverse(substr(reverse(Var),strpos(reverse(Var), "|"), . ))
l
+-------------------------------------------+
| Var Wanted |
|-------------------------------------------|
1. | A (c) | B(/ c/) | C.c A (c) | B(/ c/) | |
2. | F | G9 F | |
3. | K | S | V | S K | S | V | |
4. | F | A F | |
+-------------------------------------------+
这类问题的第一个调用端口是。自Stata的早期版本以来,上述解决方案就已成为可能(附带条件是strpos()
以前称为index()
)
另一种解决方案是使用最近添加的函数strrpos()
对于大多数人来说,这似乎更直接、更和谐
gen Wanted2 = substr(Var, 1, strrpos(Var, "|"))