r - 遍历偶数/奇数列并将它们堆叠在特定列下
问题描述
我有来自 Douglas Montgomery 的《时间序列分析与预测简介》一书中的以下数据集:
我从这个电子表格创建了一个名为 pharm 的数据框。我们只有两个变量,但它们在几列中重复。我想将所有奇数的“周”列从第 2 列中取出,并按顺序将它们堆叠在第 1 周列下。相反,我想对偶数“销售额,以千计”列做同样的事情。这是我到目前为止所尝试的:
pharm2 <- data.frame(week=c(pharm$week, pharm[,3], pharm[,5], pharm[,7]), sales=c(pharm$sales, pharm[,4], pharm[,6], pharm[,8]))
这是有效的,因为没有很多列,但我需要一种更有效的方法,因为硬编码对于很多列是不实用的。有谁知道更有效的方法来做到这一点?
解决方案
如果列是交替的,只需使用回收逻辑向量进行子集,unlist
并创建一个新的 data.frame
out <- data.frame(week = unlist(pharm[c(TRUE, FALSE)]),
sales = unlist(pharm[c(FALSE, TRUE)]))
推荐阅读
- protocol-buffers - 如何使用 protobuf 编码/解码嵌套消息?
- ios - 文件提供程序扩展,importDocumentAtURL:: 无法读取给定 URL 的文件 (iOS 11.4.1)
- html - 居中对齐页面内容
- linux - Windows 和 Linux 在 Kubernetes 集群中共存
- mysql - 如何每天提取不同的最后一次触摸值的方法
- linux - 如何从“struct linux_binprm”中获取 argv
- node.js - 在 Mocha 中将对象与来自 MongoDb 的日期进行比较
- emv - 如何使用 emv 付款方式提取 IBAN 号码
- javascript - Ionic 3 在选项卡上打开新页面
- sql - 第一列(金额)中的值的减法总和由另一个第二列(产品)分组,条件在另一个第三列(过程)