Stata: mengimpor txt dengan beberapa pembatas multi karakter

Saya memiliki data dengan pembatas yang sangat aneh:

1,|ABC1|,|BUD|,|Fed Budget & Appropriations|,|t1|
2,|ABC2|,|LBR|,|Labor, Antitrust & Workplace|,|t2|
3,|ABC3|,|UNM|,|Unemployment|,|t1|

Jadi pembatasnya adalah koma dan masing-masing variabel, tetapi yang pertama (pengidentifikasi) berada di antara dua pipa. Masalahnya adalah variabel keempat juga menggunakan koma, jadi saya tidak bisa begitu saja menggunakan koma sebagai pembatas dan menghapus pipa. Saya telah menemukan cara untuk mengerjakan data dengan melakukan beberapa operasi pencarian dan penggantian melalui terminal, tetapi saya ingin melakukannya melalui Stata. Adakah yang tahu caranya?


person ArOk    schedule 11.02.2021    source sumber


Jawaban (1)


Saya memasukkan contoh data Anda ke dalam file teks dan menemukan bahwa pembatas terdeteksi dengan cukup baik secara otomatis. Lalu saya dropped variabel apa pun yang semuanya koma atau hilang semuanya, menggunakan findname dari Stata Journal.

. import delimited "troublesome.txt"
(9 vars, 3 obs)

. list 

     +-------------------------------------------------------------------------+
     | v1     v2   v3    v4   v5                             v6   v7   v8   v9 |
     |-------------------------------------------------------------------------|
  1. | 1,   ABC1    ,   BUD    ,    Fed Budget & Appropriations    ,   t1    . |
  2. | 2,   ABC2    ,   LBR    ,   Labor, Antitrust & Workplace    ,   t2    . |
  3. | 3,   ABC3    ,   UNM    ,                   Unemployment    ,   t1    . |
     +-------------------------------------------------------------------------+

. findname, all(@ == ",")
v3  v5  v7

. drop `r(varlist)'

. findname, all(missing(@))
v9

. drop `r(varlist)'

. destring v1, ignore(",") replace
v1: character , removed; replaced as byte

. list 

     +-----------------------------------------------------+
     | v1     v2    v4                             v6   v8 |
     |-----------------------------------------------------|
  1. |  1   ABC1   BUD    Fed Budget & Appropriations   t1 |
  2. |  2   ABC2   LBR   Labor, Antitrust & Workplace   t2 |
  3. |  3   ABC3   UNM                   Unemployment   t1 |
     +-----------------------------------------------------+
 
person Nick Cox    schedule 11.02.2021
comment
Besar! Itu menyelesaikan masalahnya. Tapi saya kurang berhati-hati saat melihat data saya. Ada beberapa masalah tambahan yang muncul ketika saya baru saja membaca data dengan mengizinkan deteksi otomatis pembatas. Saya telah mengedit pertanyaan saya sekarang, untuk menunjukkan apa yang saya maksud - person ArOk; 11.02.2021
comment
Maaf, sekali lagi saya tidak menjelaskannya dengan cukup jelas. Pada contoh kedua saya masih memiliki koma di beberapa variabel. Saya mengedit pertanyaan lagi - person ArOk; 11.02.2021
comment
Sayang sekali, saya akan menghapus hasil edit dan membuka pertanyaan baru dengannya. Pertanyaan pertama saya telah terjawab. Terima kasih! - person ArOk; 12.02.2021