Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 迭代两个数据集并将结果返回到一个数据集_R_Loops - Fatal编程技术网

R 迭代两个数据集并将结果返回到一个数据集

R 迭代两个数据集并将结果返回到一个数据集,r,loops,R,Loops,我有两个数据集,事务长和事务短。事务_long在数据集中有许多策略和价格的报价,并带有一个购买点(用true表示)。交易记录仅包含购买点的条目 我的目标是在Transaction\u short数据集中添加一个名为Policy\u Change\u Frequency的列。对于短数据集中的每个客户,迭代长数据集中该客户的行,并计算策略更改的时间 要查找策略更改,我可以使用sum(diff(Transaction\u Long$policy)!=0),但不确定如何迭代这两个数据集并获得结果 详情:

我有两个数据集,事务长和事务短。事务_long在数据集中有许多策略和价格的报价,并带有一个购买点(用true表示)。交易记录仅包含购买点的条目

我的目标是在Transaction\u short数据集中添加一个名为Policy\u Change\u Frequency的列。对于短数据集中的每个客户,迭代长数据集中该客户的行,并计算策略更改的时间

要查找策略更改,我可以使用
sum(diff(Transaction\u Long$policy)!=0)
,但不确定如何迭代这两个数据集并获得结果

详情:

Customer_Name : name of customer
Customer_ID: Customer Identifier number
Purchase: Boolean variable (Yes-1,No-0)
Policy: Categorical (takes values 1-5)
Price : Price quoted
数据集1-事务长

Customer_Name,Customer_ID,Purchased,Policy,Price
Joe,101,0,1,500
Joe,101,0,1,505
Joe,101,0,2,510
Joe,101,0,2,504
Joe,101,0,2,507
Joe,101,0,1,505
Joe,101,1,3,501
Mary,103,0,1,675
Mary,103,0,3,650
Mary,103,0,2,620
Mary,103,0,2,624
Mary,103,0,2,630
Mary,103,1,2,627
数据集2传输\u短路

Customer_Name , Customer_ID,Purchased,Policy, Price
Joe,101,1,3,501
Mary,103,1,2,627
需要在Transaction Short数据集中添加策略更改频率列,因此我的最终Transaction Short数据集如下所示

最终的数据集应该如下所示

Customer_Name , Customer_ID,Purchased, Policy, Price,Policy_ChangeFreq 
Joe,101,1,3,501,3
Mary,103,1,2,627,2

在R中使用sqldf包使其正常工作

for (i in 1:nrow(Transaction_short)){
    sql <- sprintf("SELECT policy from Transaction_long where customer_ID = %s",ML_Train_short$customer_ID[i])
    df<- sqldf(sql)
    NF <- sum(df$policy[-1]!= df$policy[-length(df$policy)])
    ML_Train_short$Policy_Change_Freq[i] <- NF
    } 
for(i in 1:nrow(交易简称)){
sql