相关疑难解决方法(0)

使用数据表或 igraph 按组查找直接邻居

我有一个data.table:

groups <- data.table(group = c("A", "B", "C", "D", "E", "F", "G"), 
                     code_1 = c(2,2,2,7,8,NA,5),
                     code_2 = c(NA,3,NA,3,NA,NA,2),
                     code_3 = c(4,1,1,4,4,1,8))

group code_1 code_2 code_3
  A      2     NA      4
  B      2      3      1
  C      2     NA      1
  D      7      3      4
  E      8     NA      4
  F     NA     NA      1
  G      5      2      8
Run Code Online (Sandbox Code Playgroud)

我想要实现的是让每个组根据可用代码找到直接邻居。例如:A 组由于 code_1 具有直接邻居组 B、C(code_1 在所有组中等于 2)并且由于 code_3 具有直接邻居组 D、E(在所有这些组中 code_3 等于 4)。

我尝试的是针对每个代码,根据匹配对第一列(组)进行子集化,如下所示:

groups$code_1_match = list()
for (row in 1:nrow(groups)){

  set(groups, i=row, j="code_1_match", list(groups$group[groups$code_1[row] …
Run Code Online (Sandbox Code Playgroud)

r igraph data.table

14
推荐指数
4
解决办法
512
查看次数

生成所有可能的对并计算R中的频率

我有一个产品(苹果,梨,香蕉)的数据框架在不同类别(食品和食品)的不同地点(城市)销售.

我想要计算任何一对产品在任何类别中出现的次数.

这是我试图使其工作的示例数据集:

category <- c('food','food','food','food','food','food','edibles','edibles','edibles','edibles', 'edibles')
location <- c('houston, TX', 'houston, TX', 'las vegas, NV', 'las vegas, NV', 'philadelphia, PA', 'philadelphia, PA', 'austin, TX', 'austin, TX', 'charlotte, NC', 'charlotte, NC', 'charlotte, NC')
item <- c('apple', 'banana', 'apple', 'pear', 'apple', 'pear', 'pear', 'apple', 'apple', 'pear', 'banana')

food_data <- data.frame(cbind(category, location, item), stringsAsFactors = FALSE)
Run Code Online (Sandbox Code Playgroud)

例如,"apple&banana"对出现在"las vegas,NV"的"food"类别中,但也出现在"charlotte,NC"的"foods"类别中.因此,"苹果和香蕉"对的计数为2.

我想要的输出是这样的对数:

(无序)苹果和香蕉的数量

2

(无序)苹果和梨的数量

4

任何人都知道如何实现这一目标?相对较新的R并且已经混淆了一段时间.

我正在尝试使用它来计算不同项目之间的亲和力.

关于输出的补充说明:我的完整数据集包含数百个不同的项目.想获得一个数据框,其中第一列是该对,第二列是每对的计数.

r dplyr

1
推荐指数
1
解决办法
864
查看次数

标签 统计

r ×2

data.table ×1

dplyr ×1

igraph ×1