r - 在R中将字符串分解为多个虚拟变量
问题描述
我在R中有下表
id<-c(1,2,3,4)
medal<-c("2021-2020-2018","NA","2019","2015-2014-2012")
df<-data.frame(id,medal)
id medal
1 2021-2020-2018
2 NA
3 2019
4 2015-2014-2012
并希望将奖牌列分解为每个 id 的多个虚拟变量,如下所示:
id medal 2021 2020 2019 2018 2015 2014 2012
1 2021-2020-2018 1 1 0 1 0 0 0
2 NA 0 0 0 0 0 0 0
3 2019 0 0 1 0 0 0 0
4 2015-2014-2012 0 0 0 0 1 1 1
我会很感激你的帮助。
解决方案
qdapTools
有一个功能可以做到这一点,你只需medal
要先拆分列:
library(qdapTools)
df <- cbind(df, mtabulate(strsplit(df$medal, "-")))
df[, names(df) != "NA"]
推荐阅读
- reactjs - MobX 与 React 最佳实践与观察者
- c# - 如何获取程序启动后经过的时间?
- java - 在 java/spring-boot 中,如果找不到项目,返回空 json 对象的最干净方法是什么
- jquery - 如何自动将数字添加到克隆输入的文本名称
- elasticsearch - ElasticSearch:为什么我不能在特定类型中搜索?
- python - 当我们通过旧版应用服务器协议发送数据消息时如何添加分析标签
- angular - AngularFire auth,模板在 Observable 时未更新
变化 - excel - Excel中的IF函数
- mysql - MYSQL:在给定的场景中我应该创建哪个索引?
- javascript - jquery选择除最后一列以外的整行