【问题标题】:Find same observations of a list/matrix in another matrix在另一个矩阵中查找列表/矩阵的相同观察值
【发布时间】:2013-11-13 14:55:03
【问题描述】:

对于营销课程,我必须编写一个函数来计算客户的保留率(客户仍然是客户的概率)。到目前为止,我隔离了各个客户的 id 并将它们存储在矩阵 first.transactions.data 中。然后我使用 split() 将它们分成群组(按时间划分的客户组)并将它们存储在列表群组中。 现在我的问题来了:我从名为 final.period.data 的完整数据集中计算了另一个子矩阵,我将在其中计算保留率。但是,因此我必须为每个队列隔离 final.period.data 中的 id。我的导师告诉我,我应该在 final.period.data 中创建一个额外的列,显示 TRUE 或 FALSE,具体取决于队列的 id 和 final.period.data 的 id 是否相同。为此,我尝试使用存在,但我总是收到错误消息。我尝试了以下方法:

final.period.data <- if(exists(cohort$'1'$id, where = final.period.data$id) final.period.data$same = TRUE)

但总是收到错误消息,例如:意外符号或无效的第一个参数。我还尝试将列表队列转换为矩阵,但这也无济于事。我必须如何更改存在命令,或者是否有更简单的方法可以在 final.period.data 中找到同类群组的 ID?

感谢您的帮助。

【问题讨论】:

    标签: r list matrix


    【解决方案1】:

    你可以创建一个函数来做你想做的事:

    funct <-(final.period.data){
     if (final.period.data$cohort =='1' & final.period.data$id ==<condition2>){
       #Change the number for the TRUE condition}
     else{ #If it doesn't fit the two conditions
      #Change the number for the FALSE condition}
    }
    vector <- c(nrow(final.period.data))
    final.period.data <- cbind(vector)
    

    并将其用作应用功能。 Here你能找到更多关于申请的信息吗 但我通常使用 for 循环来完成,首先创建新列,然后将其添加到数据框中。

    【讨论】: