ave
का उपयोग करें। अपने data.frame
कहा जाता है "mydf" यह मानते हुए:
mydf$counter <- with(mydf, ave(CustomerID, CustomerID, FUN = seq_along))
mydf
# CustomerID TripDate counter
# 1 1 1/3/2013 1
# 2 1 1/4/2013 2
# 3 1 1/9/2013 3
# 4 2 2/1/2013 1
# 5 2 2/4/2013 2
# 6 3 1/2/2013 1
क्या इसके लायक है के लिए, मैं भी कार्यान्वित एक समारोह में इस दृष्टिकोण का एक संस्करण मेरी "splitstackshape" पैकेज में शामिल। समारोह getanID
कहा जाता है:
mydf <- data.frame(IDA = c("a", "a", "a", "b", "b", "b", "b"),
IDB = c(1, 2, 1, 1, 2, 2, 2), values = 1:7)
mydf
# install.packages("splitstackshape")
library(splitstackshape)
# getanID(mydf, id.vars = c("IDA", "IDB"))
getanID(mydf, id.vars = 1:2)
# IDA IDB values .id
# 1 a 1 1 1
# 2 a 2 2 1
# 3 a 1 3 2
# 4 b 1 4 1
# 5 b 2 5 1
# 6 b 2 6 2
# 7 b 2 7 3
आप ऊपर के उदाहरण से देख सकते हैं, मैं इस तरह से है कि आप एक या अधिक स्तंभ है कि आईडी स्तंभ के रूप में व्यवहार किया जाना चाहिए निर्दिष्ट कर सकते हैं में समारोह लिखा है। यह देखने के लिए जांच करता है कि id.vars
में से कोई भी डुप्लीकेट किया गया है, और यदि वे हैं, तो यह आपके लिए एक नया आईडी चर उत्पन्न करता है।
धन्यवाद बहुत आनंद! यह काम करता है! – kaos1511