【发布时间】:2016-05-19 22:10:38
【问题描述】:
我正在尝试根据关于人们如何从一个位置移动到另一个位置的两个不同参数创建一个序列。我有以下信息
name<- c("John", "John", "John", "Sam","Sam", "Robert", "Robert","Robert")
location<- c("London", "London", "Newyork", "Houston", "Houston", "London", "Paris","Paris")
start_yr<- c(2012, 2012, 2014, 2014, 2014,2012,2013, 2013)
end_yr<- c(2013, 2013, 2015, 2015, 2015, 2013, 2015, 2015)
df<- data.frame(name,location,start_yr, end_yr)
我需要 seq_along 姓名和位置,并创建一个年份的转换变量,以了解此人是否在那一年搬家。我试过这个,但效果不是很好。我越来越奇怪,这意味着名称列有时不以 1 开头。关于如何解决这个问题的任何建议?
ave(df$name,df$location, FUN = seq_along)
我想拥有
name location move year
John London 1 2012
John London 0 2013
John Newyork 1 2014
John Newyork 0 2015
【问题讨论】:
-
我看不到您如何使用初始数据获得所需的输出
-
我试图按顺序创建一个新的变量 curr_yr 用于年份。这样我就可以通过添加 start_yr 和 curr_yr 来创建年份变量。
-
让我重新表述一下。你怎么知道约翰搬进来
2012? -
其实你是对的。 2012 年的第一步是 0,因为我没有先前的数据,但纽约的数据是正确的。有意义吗?
-
我说
end_yr在这里也无所谓吗?您只想知道 John 在给定年份的年初与上一年相比是否更换了城市?