r - 转换数据框
问题描述
给定一个名为“Table”的数据框(带有 value1、value2、...、value100):
Month Currency value1 value2
Jan euro 210 200
Jan dollar 120 300
Feb euro 100 280
Feb dollar 200 150
我想得到这个:
value1 value2
Month euro dollar euro dollar
Jan 210 120 200 300
Feb 100 200 280 150
我尝试这样做是为了为欧元和美元创建列名:Table <- spread(Table,Currency)
。
但我得到一个错误:
overscope_eval_next(overscope,expr)中的错误:找不到对象''
你能帮助我如何获得我想要的这种格式吗?
解决方案
data.table
可能是最简单的方法:
dat <- read.table(text= " Month Currency value1 value2
Jan euro 210 200
Jan dollar 120 300
Feb euro 100 280
Feb dollar 200 150", header = TRUE)
library(data.table)
dcast(setDT(dat), Month ~ Currency, value.var = c(rep(paste0("value", 1:2))))
只需将2
in更改c(rep(paste0("value", 1:2)))
为 finalvalue
是什么。
推荐阅读
- python - 如何使python请求上传到文件上传表单
- federation - 如何向 GitBlit 镜像发送联合提案?
- python - How to scrape second
of webpage using python and Beautifulsoup
- c# - unity RotateAround() 结合特定方向
- python-3.x - 与 pytest 一起使用时禁用日志记录
- javascript - 将文本从 txt 文件导入按钮文本 (html)
- python - 没有参数的Python setter?
- c++ - Qt Signals/Slots 的奇怪行为(涉及动态加载的 DLL)
- javascript - 无法在 JS 中设置 null 的属性“innerHTML”
- python - 需要在分组后的列中获取排名值