R 创建一个;“滞后”;数据帧
我有下面的数据框,希望将除前两列以外的所有列向下移动。基本上,我希望看到一个“滞后”的数据帧。似乎有很多关于如何为单个列获取此信息的内容(请参阅),但没有选择大多数列的内容R 创建一个;“滞后”;数据帧,r,dataframe,R,Dataframe,我有下面的数据框,希望将除前两列以外的所有列向下移动。基本上,我希望看到一个“滞后”的数据帧。似乎有很多关于如何为单个列获取此信息的内容(请参阅),但没有选择大多数列的内容 My data = d1 <- data.frame(month = c("jan", "feb", "mar", "apr", "may", "june"), conv = c(1, 3, 6, 2, 3, 8), month = c("jan",
My data =
d1 <- data.frame(month = c("jan", "feb", "mar", "apr", "may", "june"),
conv = c(1, 3, 6, 2, 3, 8),
month = c("jan", "feb", "mar", "apr", "may", "june"),
visit = c( 1, 2, 4, 8, 16, 32),
click = c(64, 62, 36, 5, 6, 3))
d1
Desired output =
d2 <- data.frame(month = c("jan", "feb", "mar", "apr", "may", "june"),
conv = c(1, 3, 6, 2, 3, 8),
month = c(NA, "jan", "feb", "mar", "apr", "may"),
visit = c( NA, 1, 2, 4, 8, 16),
click = c(NA, 64, 62, 36, 5, 6))
d2
我的数据=
d1一种便宜的方法:
cbind(d1[,1:2],head(rbind(NA,d1),-1)[,-(1:2)])
结果:
month conv month.1 visit click
1 jan 1 <NA> NA NA
2 feb 3 jan 1 64
3 mar 6 feb 2 62
4 apr 2 mar 4 36
5 may 3 apr 8 5
6 june 8 may 16 6
month conv month.1访问单击
1月1日不适用
2月2日1月3日64
3月3日2月6日62
4月2日3月4日36
5月5日4月3日5
6月6日5月8日16 6
一种便宜的方法:
cbind(d1[,1:2],head(rbind(NA,d1),-1)[,-(1:2)])
结果:
month conv month.1 visit click
1 jan 1 <NA> NA NA
2 feb 3 jan 1 64
3 mar 6 feb 2 62
4 apr 2 mar 4 36
5 may 3 apr 8 5
6 june 8 may 16 6
month conv month.1访问单击
1月1日不适用
2月2日1月3日64
3月3日2月6日62
4月2日3月4日36
5月5日4月3日5
6月6日5月8日16 6