Stata: การนำเข้า txt พร้อมด้วยตัวคั่นหลายอักขระ

ฉันมีข้อมูลที่มีตัวคั่นที่แปลกมาก:

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

ดังนั้นตัวคั่นคือลูกน้ำและแต่ละตัวแปร แต่อันแรก (ตัวระบุ) อยู่ระหว่างสองไปป์ ปัญหาคือตัวแปรที่สี่ยังใช้เครื่องหมายจุลภาคด้วย ดังนั้นฉันจึงใช้เครื่องหมายจุลภาคเป็นตัวคั่นและลบไปป์ไม่ได้ ฉันพบวิธีการทำงานของข้อมูลด้วยการค้นหาและแทนที่การดำเนินการผ่านเทอร์มินัล แต่ฉันต้องการดำเนินการผ่าน Stata ไม่มีใครมีความคิดวิธีการ?


person ArOk    schedule 11.02.2021    source แหล่งที่มา


คำตอบ (1)


ฉันใส่ตัวอย่างข้อมูลของคุณลงในไฟล์ข้อความและพบว่าตัวคั่นถูกตรวจพบโดยอัตโนมัติค่อนข้างดี จากนั้น ฉัน dropped ตัวแปรใดๆ ที่มีเครื่องหมายจุลภาคทั้งหมดหรือหายไปทั้งหมด โดยใช้ findname จาก 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
ยอดเยี่ยม! นั่นช่วยแก้ปัญหาได้ แต่ฉันไม่ระมัดระวังเพียงพอเมื่อดูข้อมูลของฉัน มีปัญหาเพิ่มเติมบางอย่างปรากฏขึ้นเมื่อฉันเพิ่งอ่านข้อมูลโดยอนุญาตให้ตรวจหาตัวคั่นโดยอัตโนมัติ ฉันได้แก้ไขคำถามของฉันแล้วเพื่อแสดงสิ่งที่ฉันหมายถึง - person ArOk; 11.02.2021
comment
ขออภัยอีกครั้งฉันไม่ได้ระบุให้ชัดเจนเพียงพอ ในตัวอย่างที่สอง ฉันยังมีลูกน้ำในตัวแปรบางตัว ฉันกำลังแก้ไขคำถามอีกครั้ง - person ArOk; 11.02.2021
comment
แย่เลย ฉันจะลบการแก้ไขและเปิดคำถามใหม่ด้วย คำถามแรกของฉันได้รับคำตอบแล้ว ขอบคุณ! - person ArOk; 12.02.2021