すべての値を示す2つのデータフレームの結合:インナーはまだ私は2つのデータフレーム、販売店用と1を持っている
store <- data.frame(StoreID=c(1,2,3,4), StoreName=c("McDonalds", "A&W", "Burger King", "Wendy's"))
sales <- data.frame(StoreID=c(1,2,1,1,2,2), ItemID=c(2,2,3,4,4,5), SalesQty=c(10,20,30,40,50,60))
store
#StoreID StoreName
# 1 McDonalds
# 2 A&W
# 3 Burger King
# 4 Wendy's
sales
#StoreID ItemID SalesQty
# 1 2 10
# 2 2 20
# 1 3 30
# 1 4 40
# 2 4 50
# 2 5 60
私は、各販売取引のためにStoreNameをを見ることができるように、それらをマージしたいです:
merged <- merge(sales, store, by = "StoreID")
merged
#StoreID ItemID SalesQty StoreName
# 1 2 10 McDonalds
# 1 3 30 McDonalds
# 1 4 40 McDonalds
# 2 2 20 A&W
# 2 4 50 A&W
# 2 5 60 A&W
今、私は別のアイテムが販売されたどのように多く、マージされたデータフレーム内の各StoreNameをするために知ってほしい:
tapply(merged$ItemID, merged$StoreName, FUN = function(x) length(unique(x)))
#A&W Burger King McDonalds Wendy's
# 3 NA 3 NA
私の質問は、合併されたデータフレームにないのに、なぜ「バーガーキング」と「ウェンディーズ」が表示されるのですか?
を、彼らは 'factors'あるので、あなたは' data.frameを行くことによって値の文字を加えた場合のレベルはまだ – SymbolixAU
を存在(StoreID = ...、 ...、stringsAsFactors = F) 'を実行すると、出力には表示されません。 – SymbolixAU
'液滴 'は、未使用の因子レベルを取り除く方法です。 (ItemID、StoreName、FUN = function(x)length(ユニーク(x)))) ' –