【问题标题】:How to change string value label如何更改字符串值标签
【发布时间】:2014-11-11 04:06:26
【问题描述】:

假设我有一个带有多个字符串值的字符串变量:

gen rand = runiform()
sort rand
gen var1 = ""
replace var1 = "A" if rand < .3
replace var1 = "B" if rand>=.3 & rand < .7
replace var1 = "C" if var1==""

如何更改 var1 的值?例如,AAaaBBbbCCcc

我想做类似以下的事情(而是替换变量),我知道这是不正确的:

label define var1L "A" "Aa" B "Bbb" C "Ccc"
label values var1 var1L

【问题讨论】:

  • 通过考虑label define 的解释消除了关键混淆: ... 定义了一个列表... 整数和称为值标签的文本的关联。 stata.com/help.cgi?label

标签: variables label stata


【解决方案1】:

字符串变量不能有值标签。您可以将其解释为字符串变量的标签意味着变量本身的内容。不过你可以replace:

clear
set more off

input ///
str1 var1
A
B
C
end

list

replace var1 = "Aaa" if var1 == "A"
replace var1 = "Bbb" if var1 == "B"
replace var1 = "Ccc" if var1 == "C"

list

您需要详细说明您的数据和目标以获得更有用的答案。

【讨论】:

  • 这很容易......而且我因为没有想到replace而感到愚蠢。我在考虑价值标签,但无法弄清楚。这就是我所需要的。非常感谢。
  • 没问题。您可能想要generate 一个新变量并使用该变量执行replace,这样您就可以保留原始变量而无需更改。另一种方法是使用encode 将这些字符串转换为数字,添加值标签,然后使用这些标签。当变量为数字时,一些数据管理操作更方便。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-16
  • 2017-07-08
  • 2011-01-25
  • 1970-01-01
  • 2016-03-15
  • 2011-08-30
相关资源
最近更新 更多