Stata

2016-03-20 9 views
1

kullanarak tek bir satırda birden fazla değişken nasıl değiştirilir Veri kümesinde yapılacak bazı el düzeltmeleri var ve if koşulunu tekrarlamaktan kaçınmak istedim. Örneğin, yerineStata

sysuse auto, clear 
replace mpg=21 if make=="AMC Concord" 
replace rep78=4 if make=="AMC Concord" 
replace mpg=23 if make=="AMC Pacer" 
replace rep78=4.5 if make=="AMC Pacer" 

ait İçin Aşağıdaki kod daha cimri olurdu ama

sysuse auto, clear 
replace mpg=21 & rep78=4 if make=="AMC Concord" 
replace mpg=23 & rep78=5 if make=="AMC Pacer" 

Herhangi bir öneri yararlı olacağını çalışmaz.

cevap

1

Haklısınız; Bu kod daha özlü olurdu. Bu sadece yasal Stata değildir ve replace sözdizimi şemasında hiçbir şey aksini önerir.

if'u kullanırken, aynı kodu daha az satırda yeniden yazmanın bazı çok yollu yöntemlerini hayal edebiliyorum, ancak benim görüşüme göre, daha çekici veya anlaşılması daha kolay olamaz.

Gözlem numarasını ararken ve if yerine in kullanarak kodu kısaltır, ancak sort düzenindeki değişikliklere göre daha az açık ve yüksek derecede kırılgan olur.

+0

Teşekkürler. 'In 'yerine,' eğer' iyi bir çözüm değil. 'Değiştir'in olanaklarını genişletmek olası bir gelişme olabilir! – emeryville

+0

Bunu önerebilirsin. StataCorp ya da deneyimli kullanıcılar ile hiç uçamayacağını sanmıyorum. Kendim için konuştuğumda, buna karşı tartışacağım. ”Ifadesi, verileri açık bir şekilde değiştiriyor ve söz dizimini daha karmaşık hale getiriyor. Birden fazla 'değiştir' çağrısını kabul etmek için kendi programınızı her zaman yazabilirsiniz (bu, programcılar için bir forumdur). –

+0

Bunun yerine R'de yapabilir miyiz ve sonra veri çerçevesini Stata'ya yeniden gönderebilir miyiz? –

İlgili konular