如何在R上为基于文本的数据运行聚类分析

时间:2019-04-22 08:49:10

标签: r cluster-analysis data-mining

Excel数据将包含从用户收集的36个因素(基本上是是或不是问题)。基于这个问题,有什么方法可以进行聚类分析吗?我尝试使用虹膜示例作为参考,但由于我的数据完全基于文本,因此试图找出一种方法。

日期应为:

            Q 1     Q 2     Q 3     Q 4     Q 5
People 1    Yes     Yes     Yes     Yes     Yes 
People 2    No      Yes     No      Yes     No
People 3    No      No      No      No      No
People 4    Yes     No      Yes     No      Yes 
People 5    No      Yes     No      Yes     No
People 6    Yes     No      Yes     No      Yes 
People 7    No      Yes     No      Yes     No

1 个答案:

答案 0 :(得分:0)

当我参考在线博客,Crossvalidated Stackexchange或其他用于因素分析的资源时,我在这里展示了一种方法,如何获取数据数值。

这是我如何复制您的数据:

library(tidyverse)
df <- read_table("Person ID     Q1     Q2     Q3     Q4     Q5
People 1    Yes     Yes     Yes     Yes     Yes 
People 2    No      Yes     No      Yes     No
People 3    No      No      No      No      No
People 4    Yes     No      Yes     No      Yes 
People 5    No      Yes     No      Yes     No
People 6    Yes     No      Yes     No      Yes 
People 7    No      Yes     No      Yes     No") %>% 
  unite("PersonID", Person, ID, sep = "")

现在您需要将文本交换为因数,而不是数字数据。

df %>% 
  mutate_if(grepl("Q", names(.)), as.factor) %>% 
  mutate_if(is.factor, as.numeric) 

输出为:

# A tibble: 7 x 6
  PersonID    Q1    Q2    Q3    Q4    Q5
  <chr>    <dbl> <dbl> <dbl> <dbl> <dbl>
1 People1      2     2     2     2     2
2 People2      1     2     1     2     1
3 People3      1     1     1     1     1
4 People4      2     1     2     1     2
5 People5      1     2     1     2     1
6 People6      2     1     2     1     2
7 People7      1     2     1     2     1

现在您可以执行相关分析,可能需要进行因子分析:

df %>% 
  select(-1) %>% 
  cor()

希望这种方法有帮助。