Это продолжение r - How to add row index to a data frame, based on combination of factorsR добавить столбец индекса в кадр данных на основе ряда значений
Я попытался повторить то, что я считаю желаемые результаты, используя зеленый проверили ответ, и я постоянно получаю что-то другое, чем ожидалось. Я уверен, что я делаю что-то действительно неправильное, но, похоже, не вижу его ИЛИ я неправильно понял, что это за состояние.
Данные из оригинального поста:
temp <- data.frame(
Dim1 = c("A","A","A","A","A","A","B","B"),
Dim2 = c(100,100,100,100,200,200,100,200),
Value = sample(1:10, 8)
)
Тогда я побежал следующий код: temp$indexLength <- ave(1:nrow(temp), temp$Dim1, factor(temp$Dim2), FUN=function(x) 1:length(x))
и: temp$indexSeqAlong <- ave(1:nrow(temp), temp$Dim1, factor(temp$Dim2), FUN=seq_along)
, а затем я создал следующее: temp$indexDesired <- c(1, 1, 1, 1, 2, 2, 3, 3)
. .. с использованием фрейма данных ниже:
Dim1 Dim2 Value indexLength indexSeqAlong indexDesired
1 A 100 6 1 1 1
2 A 100 2 2 2 1
3 A 100 9 3 3 1
4 A 100 8 4 4 1
5 A 200 10 1 1 2
6 A 200 4 2 2 2
7 B 100 3 1 1 3
8 B 200 5 1 1 4
Если я могу понять, что я не получаю нужного индекса, и если код расширяется до более чем двух переменных - я должен быть установлен. Заранее спасибо!
Вы уверены, что последнее значение 'indexDesired' не должно быть' 4'? – thelatemail
@thelatemail Я уверен, что ДОЛЖЕН быть! Спасибо за уловку – user2621147
@IShouldBuyABoat Я был бы рад поделиться небольшим фрагментом данных, который показывает соответствующие результаты двух подходов, предложенных ниже. Тем не менее, я не могу найти никакого направления, как правильно вводить данные в SO-вопросы, и я делаю много дополнительной работы для модов. Когда я это выясню, я поставлю сравнение. – user2621147