我有一个数据框,其中包含一组动物的缺席/在场数据(0/1),列为年份,行为个体。
我的数据:
df <- data.frame(Year1 = c('1','0','0','0','0','0'),
Year2 = c('1','1','1','0','0','0'),
Year3 = c('1','1','1','1','1','0'),
Year4 = c('0','1','0','0','0','1'),
Year5 = c('0','0','1','1','0','1'),
Year6 = c('0','0','0','1','1','1'))
df
Year1 Year2 Year3 Year4 Year5 Year6
1: 1 1 1 0 0 0
2: 0 1 1 1 0 0
3: 0 1 1 0 1 0
4: 0 0 1 0 1 1
5: 0 0 1 0 0 1
6: 0 0 0 1 1 1
有些人有视力差距(一年看到(1),然后第二年没有看到(0),但在第三年再次发现(1))。总共有 400 行(=个人)。
我想要做的是用1s填充空白(1s之间的0s),这样上面的数据框就变成了:
df
Year1 Year2 Year3 Year4 Year5 Year6
1: 1 1 1 0 0 0
2: 0 1 1 1 0 0
3: 0 1 1 1 1 0
4: 0 0 1 1 1 1
5: 0 0 1 1 1 1
6: 0 0 0 1 1 1
第一个 1 之前和最后一个 1 之后的零不应受到影响。
我浏览了许多stackoverflow问题,例如:
但是,我无法找到一种可以逐行同时跨所有列工作的解决方案。
提前感谢您的建议!:)