mutate_impl(.data,dots)中的错误使用" join"码

时间:2018-01-20 14:40:54

标签: r data-science

我有一个包含100000行的数据集,其中order_date显示订单日期,user_id显示用户的ID。我正在尝试创建一个新变量,用于显示用户在同一天内的总订单。我的数据是这样的:

order_date=structure(c(15587, 15647, 15734, 15560, 15599, 15778, 15708, 
15520, 15592, 15447, 15718, 15787, 15519, 15486, 15514, 15784, 
15619, 15705, 15552, 15734, 15493, 15661, 15563, 15600, 15790, 
15485, 15546, 15767, 15704, 15726), class = "Date") 

user_id=c(22607, 28275, 32238, 20202, 4391, 7983, 29590, 11820, 22956, 
3196, 31125, 11709, 6586, 2920, 9698, 36814, 6954, 30368, 19052, 
827, 6599, 517, 8761, 20174, 37367, 11647, 18764, 27271, 30302, 
14808)

daten = data.frame(order_date = order_date, user_id = user_id)

我正在使用此代码:

daten<-join(daten, count(daten, c("order_date", "user_id")))

它创建了一个名为&#34; freq&#34;的新变量。它一直工作到今天。现在它不起作用,我收到如下错误信息:

mutate_impl(.data,dots)中的错误:   列c("order_date", "user_id")的长度必须为100000(行数)或1,而不是2

我使用str检查了两个变量的结构,并说它们都有100000行。

2 个答案:

答案 0 :(得分:1)

我不确定您打算使用哪个joininner_join),但在您的代码中肯定不正确的是count

count(daten, c("order_date", "user_id"))应更改为:

count(daten, order_date, user_id)

答案 1 :(得分:1)

我遇到了相同的错误消息,将字符串参数传递给group_by函数,将一个字符串变量向量作为参数。因此,在@MKR的澄清之后,我将为我的问题添加解决方案,这似乎也解决了最初问题的问题:

daten %>% 
group_by_at(vars(one_of(c("order_date", "user_id")))) %>% 
summarise(n = n())

对于原始数据,它没有多大意义(因为所有条目在两列中都是唯一的),但在其他情况下,这可能是有用的