将数据框中的字符串分类数据转换为数值数据

时间:2019-12-27 18:42:26

标签: r dataframe neural-network data-conversion

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

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。根据一些逻辑。 尝试了很多事情,但能够成就任何事情

1 个答案:

答案 0 :(得分:0)

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

例如,

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