相关疑难解决方法(0)

找出两个数组之间的余弦相似度

我想知道R中是否有内置函数可以找到两个数组之间的余弦相似度(或余弦距离)?

目前,我实现了自己的功能,但我不禁认为R应该已经配备了一个.

arrays trigonometry r distance similarity

25
推荐指数
5
解决办法
5万
查看次数

在R中使用graph.adjacency()

我在R中有一个示例代码如下:

library(igraph)
rm(list=ls())
dat=read.csv(file.choose(),header=TRUE,row.names=1,check.names=T) # read .csv file
m=as.matrix(dat)
net=graph.adjacency(adjmatrix=m,mode="undirected",weighted=TRUE,diag=FALSE)
Run Code Online (Sandbox Code Playgroud)

我使用csv文件作为输入,其中包含以下数据:

    23732   23778   23824   23871   58009   58098   58256
23732   0   8   0   1   0   10  0
23778   8   0   1   15  0   1   0
23824   0   1   0   0   0   0   0
23871   1   15  0   0   1   5   0
58009   0   0   0   1   0   7   0
58098   10  1   0   5   7   0   1
58256   0   0   0   0   0   1   0
Run Code Online (Sandbox Code Playgroud)

在此之后,我使用以下命令检查重量值:

E(net)$weight
Run Code Online (Sandbox Code Playgroud)

预期输出有点像这样:

> E(net)$weight
 [1] …
Run Code Online (Sandbox Code Playgroud)

plot r graph igraph adjacency-matrix

9
推荐指数
2
解决办法
2万
查看次数

Python中单词列表中的共现矩阵

我有一个名单列表,如:

names = ['A', 'B', 'C', 'D']
Run Code Online (Sandbox Code Playgroud)

和文件清单,在每个文件中提到了一些这些名称.

document =[['A', 'B'], ['C', 'B', 'K'],['A', 'B', 'C', 'D', 'Z']]
Run Code Online (Sandbox Code Playgroud)

我想得到一个输出作为共现矩阵,如:

  A  B  C  D
A 0  2  1  1
B 2  0  2  1
C 1  2  0  1
D 1  1  1  0
Run Code Online (Sandbox Code Playgroud)

在R中有一个针对这个问题的解决方案(创建共生矩阵),但我无法在Python中实现.我想在熊猫中做到这一点,但还没有进展!

python list matrix find-occurrences sklearn-pandas

9
推荐指数
6
解决办法
1万
查看次数

如何使用R从具有多列的数据框中计算(共)发生矩阵?

我是 R 的新手,目前正在处理边缘列表形式的协作数据,该列表具有 32 列和大约 200.000 行。我想根据国家之间的相互作用创建一个(共)现矩阵。但是,我想通过对象的总数来计算交互次数。

期望结果的基本示例

如果在一行中“England”出现了 3 次而“China”只出现了一次,结果应该是下面的矩阵。

         England  China
England    3        3
China      3        1
Run Code Online (Sandbox Code Playgroud)

可重现的例子

df <- data.frame(ID = c(1,2,3,4), 
 V1 = c("England", "England", "China", "England"),
 V2 = c("Greece", "England", "Greece", "England"),
V32 = c("USA", "China", "Greece", "England"))
Run Code Online (Sandbox Code Playgroud)

因此,示例数据框当前看起来像这样:

ID  V1       V2       ...   V32
1   England  Greece         USA
2   England  England        China
3   China    Greece         Greece
4   England  England        England
.
.
.
Run Code Online (Sandbox Code Playgroud)

期望的结果

我想逐行计算(共)出现并且与顺序无关,以获得一个(共)出现矩阵,该矩阵说明边缘循环(例如英格兰 - 英格兰)的低频,这导致以下结果:

         China   England   Greece   USA

China    2        2         2 …
Run Code Online (Sandbox Code Playgroud)

r igraph adjacency-matrix find-occurrences dplyr

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

如何计算表中的共现?

我有一个简单的矩阵,例如

test <- matrix(c("u1","p1","u1","p2","u2","p2","u2",
                 "p3","u3","p1","u4","p2","u5","p1",
                 "u5","p3","u6","p3","u7","p4","u7",
                 "p3","u8","p1","u9","p4"),
               ncol=2,byrow=TRUE) 
colnames(test) <- c("user","product")
test1<-as.data.frame(test)
Run Code Online (Sandbox Code Playgroud)

测试:

   user   product
1  u1      p1
2  u1      p2
3  u2      p2 
4  u2      p3
5  u3      p1
6  u4      p2
7  u5      p1
8  u5      p3
9  u6      p3
10 u7      p4
11 u7      p3
12 u8      p1
13 u9      p4
Run Code Online (Sandbox Code Playgroud)

我想算一下有多少用户一起购买产品对,比如p1&p2,p2和p3 ......

table(test1$product,test1$product) 给我这个:

     p1   p2  p3  p4
 p1   4   0   0   0
 p2   0   3   0   0
 p3   0   0   4   0
 p4   0   0 …
Run Code Online (Sandbox Code Playgroud)

r

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

计算按多列分组的列中的每个可能值对

我有一个看起来像这样的数据框(这只是一个子集,实际上数据集有2724098行)

> head(dat)

chr   start  end    enhancer motif 
chr10 238000 238600 9_EnhA1  GATA6 
chr10 238000 238600 9_EnhA1  GATA4 
chr10 238000 238600 9_EnhA1    SRF 
chr10 238000 238600 9_EnhA1  MEF2A 
chr10 375200 375400 9_EnhA1  GATA6 
chr10 375200 375400 9_EnhA1  GATA4 
chr10 440400 441000 9_EnhA1  GATA6 
chr10 440400 441000 9_EnhA1  GATA4 
chr10 440400 441000 9_EnhA1    SRF 
chr10 440400 441000 9_EnhA1  MEF2A 
chr10 441600 442000 9_EnhA1    SRF 
chr10 441600 442000 9_EnhA1  MEF2A 
Run Code Online (Sandbox Code Playgroud)

我能够将我的数据集转换为这种格式,其中chr,start,end和enhancer组代表一个ID:

> dat

 id motif 
 1  GATA6 
 1  GATA4 
 1    SRF 
 1 …
Run Code Online (Sandbox Code Playgroud)

r

5
推荐指数
2
解决办法
1882
查看次数

将关系对转换为矩阵

我有一个这样的数据框。的id每一行的是唯一的,并且type限定了该组的id

id  type
a   a1
b   a1
c   a2
d   a3
e   a4
f   a4
Run Code Online (Sandbox Code Playgroud)

我想制作一个如下所示的矩阵。如果两者id属于同一个type,则值为1 ,否则为 0。

    a   b   c   d   e   f
a   1   1   0   0   0   0
b   1   1   0   0   0   0
c   0   0   1   0   0   0
d   0   0   0   1   0   0
e   0   0   0   0   1   1
f   0   0   0   0   1   1
Run Code Online (Sandbox Code Playgroud)

数据框很大(超过 7 万行),我不知道如何在 R …

data-transfer r matrix tidyverse

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

R共生矩阵水平数据

R新手.我正在尝试使用水平数据创建共生矩阵.我想知道哪些元素在行中共同出现'TRUE'.

每行代表一篇文章.每篇文章都有许多标记元素存在与否的真/假变量.这里有100个元素,缩写为10k以上.所以10,000 x 101数据帧.

 dat <- read.table(text='"article"     "element1"   "element2"   "element3"   "element4"
 1     "a house a home"     "TRUE"   "TRUE"   "FALSE"   "FALSE"
 2     "cabin in the woods"     "TRUE"   "TRUE" "FALSE" "FALSE"
 3     "motel is a hotel"   "TRUE"    "FALSE"   "TRUE"   "FALSE"', header=TRUE)
Run Code Online (Sandbox Code Playgroud)

我尝试跟随这个共现问题(创建共生矩阵),但似乎由于数据的组织方式不同,这种方法不起作用.

如果100个元素x 100个元素,那么有用的将是矩阵.有人有建议吗?

r matrix

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

如何计算列表中每个项目与其他每个项目同时出现的次数?

在这个一般领域有很多问题都有很好的解决方案,但我很难将它们应用到我的数据中。我有长格式数据,其中一列为我们提供观察结果,另一列为我们提供观察结果中的成员。我想做的就是计算每个成员与其他成员同时出现的次数。

\n

假设我有以下数据集:

\n
df <- data.frame(salad = c(rep("Green", 4), rep("Caprese", 3), rep("Fruit", 3)),\n                 ingredients = c("Lettuce", "Tomato", "Onion", "Olives",\n                                 "Tomato", "Onion", "Mozzarella",\n                                 "Melon", "Orange", "Tomato"))\n\ndf\n\n     salad ingredients\n1    Green     Lettuce\n2    Green      Tomato\n3    Green       Onion\n4    Green      Olives\n5  Caprese      Tomato\n6  Caprese       Onion\n7  Caprese  Mozzarella\n8    Fruit       Melon\n9    Fruit      Orange\n10   Fruit      Tomato\n
Run Code Online (Sandbox Code Playgroud)\n

我想要做的是生成一个包含所有可能的成员(成分)组合的表格,并计算它们在观察(沙拉)中同时出现的次数。它看起来像这样:

\n
results\n\n    ingredient_A     ingredient_B      count\n1   Lettuce          Tomato            1\n2   Lettuce          Onion             1\n3   Lettuce          Olives            1\n4   Lettuce          Mozzarella    0\n5   Lettuce          Melon             0\n6   Lettuce          Orange            0\n7   Tomato           Onion             2\n8   Tomato           Olives            1\n9   Tomato …
Run Code Online (Sandbox Code Playgroud)

r count

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