亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

R向量/數據幀中的基本滯后

R向量/數據幀中的基本滯后

開心每一天1111 2019-12-25 10:48:31
很有可能會暴露出我是R的新手,但是在SPSS中,運行時滯非常容易。顯然這是用戶錯誤,但是我缺少什么呢?x <- sample(c(1:9), 10, replace = T)y <- lag(x, 1)ds <- cbind(x, y)ds結果是:      x y [1,] 4 4 [2,] 6 6 [3,] 3 3 [4,] 4 4 [5,] 3 3 [6,] 5 5 [7,] 8 8 [8,] 9 9 [9,] 3 3[10,] 7 7我想我會看到:     x y [1,] 4  [2,] 6 4 [3,] 3 6 [4,] 4 3 [5,] 3 4 [6,] 5 3 [7,] 8 5 [8,] 9 8 [9,] 3 9[10,] 7 3任何指導將不勝感激。
查看完整描述

3 回答

?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

解決此問題的另一種方法是使用zoo軟件包,該軟件包具有一個滯后方法,該結果將用NA填充結果:


require(zoo)

> set.seed(123)

> x <- zoo(sample(c(1:9), 10, replace = T))

> y <- lag(x, -1, na.pad = TRUE)

> cbind(x, y)

   x  y

1  3 NA

2  8  3

3  4  8

4  8  4

5  9  8

6  1  9

7  5  1

8  9  5

9  5  9

10 5  5

結果是一個多元動物園對象(這是一個增強的矩陣),但可以通過以下方式輕松轉換為data.frame


> data.frame(cbind(x, y))


查看完整回答
反對 回復 2019-12-25
?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

我有同樣的問題,但是我不想使用zoo或xts,所以我為數據幀編寫了一個簡單的滯后函數:


lagpad <- function(x, k) {

  if (k>0) {

    return (c(rep(NA, k), x)[1 : length(x)] );

  }

  else {

    return (c(x[(-k+1) : length(x)], rep(NA, -k)));

  }

}

這可能會滯后或滯后:


x<-1:3;

(cbind(x, lagpad(x, 1), lagpad(x,-1)))

     x      

[1,] 1 NA  2

[2,] 2  1  3

[3,] 3  2 NA


查看完整回答
反對 回復 2019-12-25
  • 3 回答
  • 0 關注
  • 703 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號