r - 使用参考列表重新编码特定列值
问题描述
我的数据框看起来像这样
data = data.frame(ID=c(1,2,3,4,5,6,7,8,9,10),
Gender=c('Male','Female','Female','Female','Male','Female','Male','Male','Female','Female'))
我有一个看起来像这样的参考列表 -
ref=list(Male=1,Female=2)
我想Gender
使用此参考列表替换列中的值,而不向我的数据框添加新列。
这是我的尝试
do.call(dplyr::recode, c(list(data), ref))
这给了我以下错误-
没有适用于“重新编码”的方法应用于“data.frame”类的对象
任何输入将不胜感激
解决方案
你可以unlist
ref
给你一个命名的代码向量,然后用你的数据索引它:
transform(data,Gender=unlist(ref)[as.character(Gender)])
ID Gender
1 1 1
2 2 2
3 3 2
4 4 2
5 5 1
6 6 2
7 7 1
8 8 1
9 9 2
10 10 2
推荐阅读
- mysql - 计算不同表中的条件
- javascript - 为什么我的代码不返回字符最多的单词?
- intellij-idea - Intellij 调用方法:如何使用所有参数自动完成
- python - 匹配 Dataframe 中的两列,如果匹配则返回相应的第三列
- bash - ''tail -f | 没有输出 呆呆 | 球座''; 要么''tail -f | gawk'' 或 ''gawk | tee'' 工作正常
- ruby - Ruby 哈希仅返回 TRUE
- internet-explorer - blueimp Gallery - 错误 Internet Explorer
- json - 解析 Twitch API 响应 PHP
- mysql - 如何使用默认语言查询表中的多语言记录
- javascript - JQuery 脚本未在主页上触发,但相同的 JQuery 在插入的单独 php 页面变量中触发