如何根据5年步骤为我的数据创建新的分组变量?
所以从这个:
group <- c(rep("A", 7), rep("B", 10))
year <- c(2008:2014, 2005:2014)
dat <- data.frame(group, year)
group year
1 A 2008
2 A 2009
3 A 2010
4 A 2011
5 A 2012
6 A 2013
7 A 2014
8 B 2005
9 B 2006
10 B 2007
11 B 2008
12 B 2009
13 B 2010
14 B 2011
15 B 2012
16 B 2013
17 B 2014
对此:
> dat
group year period
1 A 2008 2005_2009
2 A 2009 2005_2009
3 A 2010 2010_2014
4 A 2011 2010_2014
5 A 2012 2010_2014
6 A 2013 2010_2014
7 A 2014 2010_2014
8 B 2005 2005_2009
9 B 2006 2005_2009
10 B 2007 2005_2009
11 B 2008 2005_2009
12 B 2009 2005_2009
13 B 2010 2010_2014
14 B 2011 2010_2014
15 B 2012 2010_2014
16 B 2013 2010_2014
17 B 2014 2010_2014
我想我可以使用cut(dat$year, breaks = ??)
,但我不知道如何设置休息时间。
答案 0 :(得分:4)
这是一种方法:
dat$period <- paste(min <- floor(dat$year/5)*5, min+4,sep = "_")
我想这里的诀窍是使用floor(year/x)*x
功能让最大的整数小于你的年份。
这是一个应该正常工作的版本:
x <- 5
yearstart <- 2000
dat$period <- paste(min <- floor((dat$year-yearstart)/x)*x+yearstart,
min+x-1,sep = "_")
您可以使用yearstart
来确保例如2000年是x
不是其倍数的群体中的第一个。
答案 1 :(得分:1)
public class QueryCursorAdapter extends CursorAdapter{
View retView;
private int myParam1, myParam2, myParam3;
private DBHelper mHelper;
public QueryCursorAdapter(Context context, Cursor c, int param1, int param2, int param3) {
super(context, c);
myParam1 = param1;
myParam2 = param2;
myParam3 = param3;
}
个对象, cut
应该可以胜任。
Date