根据R中的下一个观察创建变量

时间:2017-07-18 02:29:55

标签: r

我认为这应该很简单,但我无法理解。我试图根据下一个变量是否为“目标”来创建变量。我对R没什么经验,也不太懂得如何参考下一个观察。我之前回答过一个更复杂的问题,这很有帮助,但我想我首先需要一个更基本的理解。

我的数据如下所示:

event<-c("Pass","Goal","Pass","Pass","Pass","Pass","Goal")

我希望它看起来像这样:

event   assist
Pass      1
Goal      NA
Pass      NA
Pass      NA
Pass      NA
Pass      1
Goal      NA

任何解释都会很棒。感谢。

1 个答案:

答案 0 :(得分:0)

我想如果你想了解基础知识,那么使用基础R并不是更好的方法

assist = rep(NA,length(event)) #create an empty assist vector
for (i in 1:length(event)-1){  #the loop goes over the entire length of event except the last
         if (event[i+1] == "Goal") #if the following element is "Goal"; the index is referencing the next observation
               {assist[i] = 1} #then do this
         else{assist[i] = NA} #else this
}

你得到了输出:

> assist
[1]  1 NA NA NA NA  1 NA

但是你应该使用评论中提到的两种方法中的任何一种。它更优雅。