我從道格拉斯·蒙哥馬利 (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]))
這是有效的,因為沒有很多列,但我需要一種方法來更有效地做到這一點,因為硬編碼對于很多列來說并不實用。有誰知道更有效的方法來做到這一點?
uj5u.com熱心網友回復:
如果列是交替的,只需使用回圈邏輯向量進行子集,unlist并創建一個新的 data.frame
out <- data.frame(week = unlist(pharm[c(TRUE, FALSE)]),
sales = unlist(pharm[c(FALSE, TRUE)]))
uj5u.com熱心網友回復:
您可以使用該seq函式生成序列來提取交替列。
pharm2 <- data.frame(week = unlist(pharm[seq(1, ncol(pharm), 2)]),
sales = unlist(pharm[seq(2, ncol(pharm), 2)]))
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/339617.html
