У меня есть этот фрейм данных:
a=as.data.frame(tribble(
~cod, ~text, ~x2007, ~x2008,
"a","aa",0,0,
0,"--",12,13,
"b","bb",1,2,
"c","cc", 0, 0,
0,"dd", 0,0,
0,"ee",7,8))
и мне нужно объединить несколько строк (1 с 2, 4 с 5 и 5). Результат должен быть:
cod text x2007 x2008
1 a aa -- 12 13
3 b bb 1 2
4 c cc dd ee 5 6
Я попробовал:
b=vector()
for (i in 2:nrow(a)) {
if(a[i,1]==0) {
a[i-1,2]=paste(a[i-1,2],a[i,2])
a[i-1,3:4]=a[i,3:4]
b=c(b,i)
}
}
a=a[-b,] #drop merged lines
но работает только с двумя последовательными строками
cod text x2007 x2008
1 a aa -- 12 13
3 b bb 1 2
4 c cc dd 5 6
Есть идеи?