题
我有一个问题,我得到了一个庞大的源数据文件,该文件显示所有可变值而不是数值ID的文本。因此,例如,我想将可变性别编码为1和2,而不是写出“女性”和“男性”。对于其他200个变量,其中有些具有多达数百个不同的变量值。
因此,在这里手动执行此操作并不是一个选择。
任何人都可以指出我在R,SPSS或Python中的解决方案或提示,我如何将数值ID分配给每个不同的变量值?
我认为这将是其他人也更常见的问题,但是我根本没有发现这种问题。
感谢您的任何帮助!
解决方案
SPSS具有一个autorecode命令,该命令将使用一个命令来完成整个作业。例如:
AUTORECODE vr1 to vr100 /into Kvr1 to Kvr100/PRINT.
这将将文本变量VR1转换为VR100,并将它们重新将其重新将其重新定为新的数值变量kvr1 to KVR100,其中旧变量中的每个文本类别现在都在新变量中自动编号,现在将文本类别用作值标签。
这 PRINT
子命令将在输出窗口中向您显示每个变量中为文本类别选择的所有数字代码的列表。
请注意 - 使用 TO
公约(如“ VR1到VR100”中)仅在文件中连续排序的变量时起作用。如果不是,您必须单独命名。
其他提示
您可以使用Python Sklearn预处理 LabElencoder. 。这是此页面中的一些示例代码,我的评论:
# Make a Label Encoder instance
le = preprocessing.LabelEncoder()
# Show it the data it has to encode, so your column
le.fit(["paris", "paris", "tokyo", "amsterdam"])
# Get a ordered list of all classes it found
list(le.classes_)
# Transform a column/list
le.transform(["tokyo", "tokyo", "paris"])
# Transform encoding back to original
list(le.inverse_transform([2, 2, 1]))
在r中,您将您的分类价值变成一个因素。
dfr$id = as.numeric(factor(dfr$mycolumn))