GOOGLE ADS

Freitag, 22. April 2022

Stata-Test, wenn Zeichenfolge dasselbe Zeichen enthält

Ich möchte automatisch testen, ob die Zeichenfolge nur einen Zeichentyp enthält, mit dem Ergebnis einer Wahr/Falsch-Variablen "Prüfung".

input str11 contactno 
"aaaaaaaaaaa"
"bbbbbbbbbbb"
"aaaaaaaaaab"
end

mein Versuch

gen check =.
//loop through dataset
local db =_N
forval x = 1/`db'{
dis as error "obs `x'"
//get first character in string
local f = substr(contactno, 1, 1) in `x'
//loop through each character in string
capture drop check_*
forvalues i = 1/11 {
quietly gen check_`i'=.
local j = substr(contactno, `i', 1) in `x'
//Tag characters that match
if "`j'" == "`f'" {
local y = 1
replace check_`i'= 1 in `x'
}
else {
local y= 0
replace check_`i'= 0 in `x'
}

}

Erwartete Ergebnisse Die ersten beiden Beobachtungen sollten wahr und die dritte falsch sein.


Lösung des Problems

Hier ist ein anderer Weg, es zu tun.

clear 
input str11 contactno
"aaaaaaaaaaa"
"bbbbbbbbbbb"
"aaaaaaaaaab"
end
gen long id = _n
save original_data, replace
expand 11
bysort id: gen character = substr(contactno, _n, 1)
bysort id (character): gen byte OK = character[1] == character[_N]
drop character
bysort id: keep if _n == 1
merge 1:1 id using original_data
list
+-------------------------------------+
| contactno id OK _merge |
|-------------------------------------|
1. | aaaaaaaaaaa 1 1 Matched (3) |
2. | bbbbbbbbbbb 2 1 Matched (3) |
3. | aaaaaaaaaab 3 0 Matched (3) |
+-------------------------------------+

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...