首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何比较R中的多个特定列

如何比较R中的多个特定列
EN

Stack Overflow用户
提问于 2020-03-29 06:28:20
回答 1查看 100关注 0票数 1

我没有太多的经验与r,任何帮助是感激的。我有一个数据集,如下所示:

代码语言:javascript
运行
复制
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名称的列(亚当、亚伦、艾比)之间的余弦similarity,以及类似地计算列B和具有B名称的列(布雷特、博比、布莱恩)之间的余弦similarity。我尝试使用purrr包中的map,但无法完全解决。

提前谢谢。

EN

Stack Overflow用户

回答已采纳

发布于 2020-03-29 06:32:33

我们可以根据列名的第一个字符将数据集拆分成数据集的list,然后使用maplist上循环,在所有列和第一列( list元素中的‘a’,'b','c','d‘-)之间执行cosine_similarity (来自tcR包)

代码语言:javascript
运行
复制
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
票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60907775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档