أدخل أرقامًا تسلسلية بدون نهاية محددة في عمود إطار البيانات في r
-
21-12-2019 - |
سؤال
أرغب في إعطاء سلسلة من الأرقام لعمود جديد في إطار البيانات.ولكن هذا التسلسل سوف يتكرر عدة مرات بناءً على قيمة في عمود آخر.(أي يبدأ من 1 حتى يتم تغيير تلك القيمة المحددة إلى قيمة أخرى).
مشكلتي هي كيفية تحديد نقطة النهاية لكل تسلسل في r.
جزء من إطار البيانات الخاص بي مع العمود "V2" الذي أنوي إضافته:
V1 V2(new added column with sequential numbers)
12 1
12 2
12 3
12 4
12 5
13 1
13 2
13 3
13 4
13 5
13 6
14 1
14 2
14 3
14 4
حاولت استخدام الكود التالي ولم يعمل!
count <- table(df$V1)
c <- as.integer(names(count)[df$V1==12])
repeat{
df$V2<- seq(1,c, by=1)
if(df$V1!=12){
break
}
}
المحلول
يبدو أنك قد تبحث عنه rle
نظرًا لأنك مهتم في أي وقت بالمتغير "V1". التغييرات.
حاول القيام بما يلي:
> sequence(rle(df$V1)$lengths)
[1] 1 2 3 4 5 1 2 3 4 5 6 1 2 3 4
نصائح أخرى
RLE هو حل جيد للغاية ولكن يمكنك أيضا استخدام AVE:
giveacodicetagpre.hth
حسنا، يدق Ananda جهدي:
giveacodicetagpre.لا تنتمي إلى StackOverflow