dplyr中的随机性

dplyr中的随机性,r,dplyr,R,Dplyr,今天dplyr发生了奇怪的事情。我有“数据”,一个4列的矩阵。这是一个社交网络:V1和V2是通过边缘连接的节点,V3和V4是一些标签。我对这个数据集的汇总统计很感兴趣,所以我使用了dplyr。然而发生了一件奇怪的事情-它给了我一些随机的结果。。。在分组、整理和总结数据时,我看不到任何随机性的依据。你能告诉我在所附的例子中会发生什么吗 谢谢 library(dplyr) library(magrittr) > head(data) V1 V2 V3

今天dplyr发生了奇怪的事情。我有“数据”,一个4列的矩阵。这是一个社交网络:V1和V2是通过边缘连接的节点,V3和V4是一些标签。我对这个数据集的汇总统计很感兴趣,所以我使用了dplyr。然而发生了一件奇怪的事情-它给了我一些随机的结果。。。在分组、整理和总结数据时,我看不到任何随机性的依据。你能告诉我在所附的例子中会发生什么吗

谢谢

library(dplyr)
library(magrittr)

> head(data)
     V1      V2       V3             V4 
[1,] "B1003" "B1051"  "130000037751" "B"
[2,] "B1009" "B1054"  "130000037751" "B"
[3,] "B1009" "B1033"  "130000037751" "B"
[4,] "B1012" "B1036"  "130000037751" "B"
[5,] "B1012" "B1066"  "130000037751" "B"
[6,] "B1012" "6IIIBM" "130000037751" "B"

> data %>%
+   as.data.frame %>%
+   group_by("V3", "V4") %>%
+   summarise(count=n_distinct("V1")) %>%
+   arrange(., desc(count)) %>%
+   print
Source: local data frame [293 x 3]
Groups: V3

             V3 V4 count
1  130000034371  A   179
2  130000014127  D   122
3  130000018500  A   112
4  130000028544  A   112
5  130000034057  E   108
6  130000061048  D   103
7  130000061048  A   100
8  130000042055  A    99
9  130000001997  D    98
10 130000042055  B    94


嗯,当你打字时,你可能会有类似的奇怪行为

summarise(mtcars, n_distinct("mpg"))
迭代运行返回的值介于16和24之间

但这与dplyr文档中的示例不符。这些函数的参数应该是向量,而不是字符串

正确的变体

 summarise(mtcars, n_distinct(mpg))
始终返回正确的值“25”

所以,试试看

data %>%
+   as.data.frame %>%
+   group_by(V3, V4) %>%
+   summarise(count=n_distinct(V1)) %>%
+   arrange(., desc(count)) %>%
+   print
与您的数据-可能这将返回正确的值


但是不管怎样,当使用字符时,dplyr发出的警告会很好。

是的,问题是代码不会改变,结果会改变。这是我关心的问题。你能提交一个dplyr问题吗?现在是dplyr问题。
n_distinct(“mpg”)
现在被禁止,并给出了这样一条消息:
n_distinct()的输入必须是数据集中的单个变量名
 summarise(mtcars, n_distinct(mpg))
data %>%
+   as.data.frame %>%
+   group_by(V3, V4) %>%
+   summarise(count=n_distinct(V1)) %>%
+   arrange(., desc(count)) %>%
+   print