r - 如何比较R中的多个特定列
问题描述
我对r没有太多经验,感谢您的帮助。我有一个这样的数据集:
df <- tibble(
a = rnorm(10),
b = rnorm(10),
c = rnorm(10),
d = rnorm(10),
Adam = rnorm(10),
Aaron = rnorm(10),
Abby = rnorm(10),
Brett= rnorm(10),
Bobby= rnorm(10),
Blaine= rnorm(10),
Cate= rnorm(10),
Camila= rnorm(10),
Calvin= rnorm(10),
Dana= rnorm(10),
Debbie= rnorm(10),
Derek= rnorm(10))
我正在尝试计算 A 列和具有 A 名称(Adam、Aaron、Abby)的列之间的余弦相似度,以及 B 列和具有 B 名称的列(Brett、Bobby、Blaine)等之间的余弦相似度。我尝试使用map
purrr包但不能很清楚。
提前致谢。
解决方案
list
我们可以根据列名的第一个字符将数据集拆分为一个数据集,然后循环遍历所有列和第一列之间的list
with map
,执行cosine_similarity
(来自包)('a','b',' tcR
c', 'd' - 在list
元素中)
library(tcR)
library(dplyr)
library(purrr)
df %>%
split.default(toupper(substr(names(.), 1, 1))) %>%
map_dfc( ~ { nm1 <- names(.x)[1]
.x %>%
summarise_at(-1, ~ cosine.similarity(!! rlang::sym(nm1), .))})
# A tibble: 1 x 12
# Adam Aaron Abby Brett Bobby Blaine Cate Camila Calvin Dana Debbie Derek
#* <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#1 -0.0444 0.110 0.356 -0.00975 -0.0277 -0.0297 0.270 -0.222 -0.364 0.172 -0.0108 -0.0498
推荐阅读
- python - 在python中使用矩形簇进行聚类
- javascript - jQuery.hoverDelay.js 插件未检测到附加元素
- angular - 按下 Return 键时 mat-form-field 的奇怪行为
- javascript - jquery AJAX动态加载图像预览只工作一次
- python - 网络爬虫更新
- powerbi - Power BI - 在网络导航器图表中更改节点颜色
- r - dplyr 中 mutate = case_when 的干净代码
- python - 如何在具有多个独立变量的 pandas 数据帧上运行 OLS 回归?
- sql - Calcite SQL 无法识别 Apache Beam 中的 CONVERT_TIMEZONE
- github-actions - Github Action Trigger on multiple on: push: paths