r - 如何为R中的列中的新单词分配数值
问题描述
我在 R 中为这样的水果列表赋值。
#input csv of fruits
fruits
apple
pineapple
orange
pear
fruits <- data.frame(fruits = c("apple", "pineapple", "orange", "pear"))
mapping <- c("apple" = 1, "orange"= 10, "pear" = 5,"pineapple" = 11)
fruits$value <- mapping[fruits[,1]]
#output
fruits value
apple 1
pineapple 11
orange 10
pear 5
当水果列表更新时,比如通过添加芒果和猕猴桃,我希望将任何可能的意外单词/水果文本分配为数值 1,而无需将该特定单词添加到映射中。
用新水果运行代码会输出这个。
fruits value
apple 1
pineapple NA
orange 11
pear NA
mango 5
kiwi 10
fruits2 = data.frame(fruits =
c("apple", "pineapple", "orange", "pear", "mango", "kiwi"))
我希望 NA 与芒果和猕猴桃在一起,但事实并非如此。
如何将值 1 分配给未包含在原始映射中的新水果?
谢谢
解决方案
首先 iffruits
是一个因素将其转换为字符
df$fruits <- as.character(df$fruits)
然后你做
df$value <- mapping[df$fruits]
df
# fruits value
#1 apple 1
#2 pineapple 11
#3 orange 10
#4 pear 5
#5 mango NA
#6 kiwi NA
这将为不在的s 提供NA
s 。现在把s 变成 1。fruits
mapping
NA
df$value[is.na(df$value)] <- 1
df
# fruits value
#1 apple 1
#2 pineapple 11
#3 orange 10
#4 pear 5
#5 mango 1
#6 kiwi 1
推荐阅读
- android - 我应该使用哪个密钥来签署要上传到 GooglePlay 的 Android 应用程序的谷歌地图
- spring-batch - 如何获取 MultiResourceItemReader 读取的文件/资源的数量,即 Resource[] 的长度?
- ios - swift无法转换类型的值
- asp.net-mvc - RowVersion 值未绑定在表单数据中,mvc 5
- matplotlib - 条形与值不成比例 - matplotlib 条形图
- linux - 在每个版本上下载 Yocto zip
- sql-server - 按条件列分组
- excel - 为每个选定的 Excel 工作表创建一个 pdf
- c# - 按下向上或向下箭头键时 WPF ComboBox PreviewKeyDown 不会出现
- spring-boot - 将 spring-data-commons 从 1.12.10.RELEASE 升级到 1.13.12.RELEASE 抛出错误