合并不同客户的信息

时间:2017-05-16 19:13:27

标签: r customer

enter image description here

您好,

我迫切需要帮助。我需要在两周内提交我的论文! 我附上了牛市的截图。 Tag no列给出了每只动物的身份(唯一),CONTACT_NO SKP(电话号码;此列用于标识每个访客)给出每个访客的身份(有很多情况下具有相同的联系NO_SKP,显示相同SDATE SKP给出了市场上每个访客交易的日期,距离KM给出了从牛市到访客原产地的距离。

BREED SKP,GENDER SKP,COLOR SKP,AWEIGHT SKP,AGE SKP都提供了动物品质的详细信息,而SALE_PURPOSE SKP则提供了交易原因的概念。所有其他变量都可以忽略。 我不明白如何继续前进.e.g

(1)您如何建议我继续对访问者进行细分并将其与相关变量相结合?例如,我想把所有拥有相同电话号码的访客组合在一起,并将他们视为一个人,同时结合每个人拥有的动物数量,交易目的,动物类型,他旅行的距离(即沿着所有变量),并将此人与该牛市等所有其他访客进行比较。

我需要一些严厉的帮助! 此致

2 个答案:

答案 0 :(得分:0)

我会发布这个作为答案,即使我知道它不会是一种解决方案。我可以感受到你的绝望,并且有很多SO用户(包括我自己)想要帮助你 - 但是现在,你的问题并不是很多人能够提供帮助的状态。所以这就是我的建议:

  1. 将您的数据导入R.如果已经存在,那很好 - 我无法从您提供的屏幕截图中看出,因为我当前的网络阻止了imgur链接。如果它在Excel中,有很多种方法可以导入到R.最简单的我发现只需要保存你需要的.csv文件,然后使用mydataframe <- read.csv("myfile.csv")进行导入。这将假设您的数据集是值的“网格”,每列代表一个变量,每行代表一个唯一的条目。

  2. 优化您的研究问题。明确而简洁地说明您希望用数据完成的工作 - 如果这是您的论文,您希望已经完成了这项工作。

  3. 优化您的编程问题。考虑到您的研究问题的最终结果,希望下一步该做什么的问题将是显而易见的。请记住,SO是一个编程论坛。 确保您向论坛提出的问题是可以回复的。具体的问题往往会吸引答案(如果你有一个“等”的问题,人们就不会知道你在说什么,并会转到下一个问题)。

  4. 当您提出问题时,请在数据的一小部分上使用dput() - 这将为用户提供一个可供使用的数据集,这将有助于他们(我们)为您找到解决方案。也许最重要的是,由于你的问题似乎与数据集的操作有关,你的问题包括看起来像你最终结果的东西(也就是说,我想把[this]变成[那])。

  5. 道歉,如果这听起来很迂腐 - 我只想帮助你更接近解决方案!

答案 1 :(得分:0)

根据你想做的事情,这里有一些我想到的事情。这是穴居人代码,并且有一些更复杂的工具用于数据集操作。

假设您有一个如下所示的数据集:

df <- data.frame(phone=c("555-1234","555-6789","555-1111","555-1234","555-1234"),breed=c("holstien","hereford",NA,"holstien","holstien"),price=c(200,300,NA,300,400),distance=c(10,20,30,10,10))

df
#      phone    breed price distance
# 1 555-1234 holstien   200       10
# 2 555-6789 hereford   300       20
# 3 555-1111     <NA>    NA       30
# 4 555-1234 holstien   300       10
# 5 555-1234 holstien   400       10

个人摘要:

with(df, table(phone, breed))  # number of each breed for each person
#           breed
#   phone      hereford holstien
#   555-1111        0        0
#   555-1234        0        3
#   555-6789        1        0

with(df, tapply(price, phone, mean))  # average amount spent by each person
# 555-1111 555-1234 555-6789 
#       NA      300      300

with(df, tapply(price, phone, sum))  # total amount spent by each person
# 555-1111 555-1234 555-6789 
#       NA      900      300

with(df, tapply(distance, phone, min))  # distance for each person (I cheated a little)
# 555-1111 555-1234 555-6789 
#       30       10       20

然后可以将其组合成新的data.frame

unique_phone <- with(df, sort(unique(phone)))
avg_amount <- with(df, tapply(price, phone, mean))
tot_amount <- with(df, tapply(price, phone, sum))
dist <- with(df, tapply(distance, phone, min))
df_pp <- data.frame(unique_phone, avg_amount, tot_amount, dist)

df_pp  # note that this could be cleaner, but the info is there
#          unique_phone avg_amount tot_amount dist
# 555-1111     555-1111         NA         NA   30
# 555-1234     555-1234        300        900   10
# 555-6789     555-6789        300        300   20

有更清洁的方法可以做到这一点,希望能比我更了解dplyr包及其朋友的人可以权衡。我希望这可以给你足够的骨架得到你需要的东西 - 这当然可以添加到。