将数据框中的字符串分类数据转换为数值数据 [英] Convert string categorical data in data frame to Numeric data

查看:149
本文介绍了将数据框中的字符串分类数据转换为数值数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的数据框中有以下值(800)

I have the following values (800) in my data frame

cat1 <- c("bi", "bt", "ch", "fs", "hc", "lh", "mo", "ms", "nn", "ro", "sc", "si", "so", "ti", "ww", "dt", "3et", "a", "a", "a", "a", "a", "a", "aam", "aao", "ac", "acs", "aeo", "aeq", "afm", "aic", "aio", "akq", "am", "am", "am", "am", "amc", "amc", "aoq", "aoq", "aot", "apm", "apo", "apo", "aqf", "ass", "ata", "ata", "atc", "atf", "atq", "atr", "aun", "bae", "baf", "bai", "bcm", "bcs", "bea", "bee", "bef", "bem", "bem", "bem", "bem", "bem", "beo", "beo", "beq", "beq", "beq", "bhm", "bkr", "bm", "bm", "bme", "bmm", "bmm", "bmo", "bmq", "bmq", "brm", "brm", "brq", "bsm", "bsm", "bsm", "bsm", "bso", "bta", "bwa", "clm", "dd", "dm", "ne", "pp", "pv", "rt", "se", "sw")

我想用数字值替换所有字符串值,以便可以在神经网络中输入它们,例如,我希望将所有"am"都替换为5或0.5,并将所有"bem"都替换为7或0.7表示根据一些逻辑. 尝试了很多事情,但能够成就任何事情

I want to replace all string values with numeric values so that I can feed them in a neural network eg I want all "am" to be replaced with 5 or 0.5 and all "bem" to be replaced with 7 or 0.7 means according to some logic. Tried many things but able to achieve anything

推荐答案

如果您知道什么是替换规则,则可以建立字典并使用命名变量进行查找.

If you have know what is the replacement rule, you can establish a dictionary and using named variables for look up.

例如,

cat1 <- c("bem","am","am","bem","am")
dict <- `names<-`(c(7,5),c("bem","am"))
res <- dict[cat1]

您将得到

> res
bem  am  am bem  am 
  7   5   5   7   5 

这篇关于将数据框中的字符串分类数据转换为数值数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆