Как добавить счетный столбец на основе по значениям в других столбцах в R

У меня относительно большой набор данных (16 000+ x ~ 31). Другими словами, он достаточно большой, чтобы я не хотел построчно манипулировать им в Excel. Данные представлены в следующей форме:

block  site     day  X1   X2
1      1        1    0.4  5.1 
1      1        2    0.8  1.1
1      1        3    1.1  4.2
1      2        1    ...  ...
1      2        2
1      2        3
2      3        1
2      3        2
2      3        3
2      4        1
2      4        2
2      4        3

Как видите, подсчет сайтов ведется непрерывно, но мне нужен столбец, в котором номер сайта сбрасывается с каждым блоком.Например, я хотел бы что-то вроде этого ниже:

block  site     day  X1   X2    site2
1      1        1    0.4  5.1   1
1      1        2    0.8  1.1   1
1      1        3    1.1  4.2   1
1      2        1    ...  ...   2
1      2        2               2
1      2        3               2
2      3        1               1
2      3        2               1
2      3        3               1
2      4        1               2
2      4        2               2
2      4        3               2

Я думал об использовании R-функции rle, но не уверен, будет ли она работать из-за сложностей с днем. В противном случае я бы попробовал что-то вроде:

Data$site2 <- sequence(rle(Data$block)$lengths)

Есть ли у кого-нибудь предложения по добавлению столбца, подсчитывающего (последовательного) количества сайтов в каждом блоке? Если это помогает, для каждого сайта записывается одинаковое количество дней (263), но на каждый блок приходится разное количество сайтов.

5
задан Kara 7 August 2015 в 18:41
поделиться