私は、セットデータフレームを持っています。私の目的は、RのArulesパッケージを使用して市場バスケット分析を行うためにデータフレームをトランザクションデータに変換することです。データフレームのトランザクションデータへの変換に関するオンライン調査をいくつか行っています(例えば、How to prep transaction data into basket for arulesおよびTransform csv into transactions for arules)得たものは違っていた。以下はR(arules)データフレームをトランザクションに変換し、NAを削除します。
dput(DF)
structure(list(Transaction_ID = c("A001", "A002", "A003", "A004", "A005", "A006"),
Fruits = c(NA, "Apple", "Orange", NA, "Pear", "Grape"),
Vegetables = c(NA, NA, NA, "Potato", NA, "Yam"),
Personal = c("ToothP", "ToothP", NA, "ToothB", "ToothB", NA),
Drink = c("Coff", NA, "Coff", "Milk", "Milk", "Coff"),
Other = c(NA, NA, NA, NA, "Promo", NA)),
.Names = c("Transaction_ID", "Fruits", "Vegetables", "Personal", "Drink", "Other"),
class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, -6L))
私のデータフレーム構造は
Transaction_ID Fruits Vegetables Personal Drink Other
A001 NA NA ToothP Coff NA
A002 Apple NA ToothP NA NA
A003 Orange NA NA Coff NA
A004 NA Potato ToothB Milk NA
A005 Pear NA ToothB Milk Promo
A006 Grape Yam NA Coff NA
トランザクションデータに各列
sapply(df, class)
Transaction_ID Fruits Vegetables Personal Drink Other
"character" "character" "character" "character" "character" "character"
変換のデータフレームのためのクラス
data <- as(split(df[,"Fruits"], df[,"Vegetables"],df[,"Personal"], df[,"Drink"], df[,"Other"]), "transactions")
inspect(data)
012です私は、トランザクションデータが正常に変換されましたが、私は思っていた
[1] {NA,NA,ToothP,Coff,NA}
[2] {Apple,NA,ToothP,NA,NA}
[3] {Orange,NA,NA,Coff,NA}
[4] {NA,Potato,ToothB,Milk,NA}
[5] {Pear,NA,ToothB,Milk,Promo}
[6] {Grape,Yam,NA,Coff,NA}
を得たの
結果NA項目を削除する方法はありますか?なぜならNAが取引リストに残っていればアイテムとして考慮するからです。
例を再現できません。あなたは 'dput(df)'を提供してもらえますか? –
こんにちはスティーブン、dput(df)を追加して私の投稿を編集しました:) –