1
的樣本數據集的行:創建數據有條件
Price=c(6651, 7255, 25465, 35645, 2556, 3665)
NumberPurchased=c(25, 30, 156, 250, 12, 16)
Type=c("A", "A", "C", "C", "B", "B")
Source=c("GSC", "MYL", "TTC", "ZAF", "CAN", "HLT")
df1 <- data.frame(Price, NumberPurchased, Type, Source)
我希望能夠創建一個新的數據幀有兩個額外的變量(ID
,PurchaseDate
),但根據可變Type
更多的數據行。
我想要應用的規則: 如果Type = A,PurchaseDate
是「2013」,「2014」。 如果Type = B,PurchaseDate
是「2013」。 如果Type = C,則PurchaseDate
爲「2013」,「2014」,「2015」。
如果Type
是A,則將Price
和NumberPurchased
除以2,並且具有如上所述的具有不同PurchaseDate
的2行。 如果Type
是B,保持原樣與作爲如果Type
是C,除以3 Price
和NumberPurchased
,並且如上文指定的具有3行具有不同PurchaseDate
。
因此,我想是這樣的一個新的數據集:
Price=c(3325.5, 3325.5, 3627.5, 3627.5, 8488.3, 8488.3, 8488.3, 11881.6, 11881.6, 11881.6, 2556, 3665)
NumberPurchased=c(12.5, 12.5, 15, 15, 52, 52, 52, 83.3, 83.3, 83.3, 12, 16)
Type=c("A", "A", "A", "A", "C", "C", "C", "C", "C", "C","B", "B")
Source=c("GSC", "GSC", "MYL", "MYL", "TTC","TTC", "TTC", "ZAF", "ZAF","ZAF", "CAN", "HLT")
PurchaseDate=c("2013", "2014", "2013", "2014", "2013", "2014", "2015", "2013", "2014", "2015", "2013", "2013")
ID=c(1, 1, 2, 2, 3, 3, 3, 4, 4, 4, 5, 6)
df2 <- data.frame(Price, NumberPurchased, Type, Source, PurchaseDate, ID)
任何見解?
該解決方案的工作,但後續的問題 - 將這項工作如果TYPE = A,除以2,如果TYPE = B,除以2,以及,類型= C,3分? – Tan 2015-02-23 10:31:46
是的,只需將第一行改爲setDT(df1)[,indx:= ifelse(Type ==「C」,3,2)]',然後按原樣運行其餘代碼。我編輯了答案,以便您可以選擇想要的索引。 – 2015-02-23 10:34:13