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

问题描述 投票:0回答:1

我的数据框中有以下值(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,有些逻辑。尝试了很多事情,但能够达到目的]

r dataframe neural-network data-conversion
1个回答
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 
© www.soinside.com 2019 - 2024. All rights reserved.