R - 根据 PCA 的存在填充数据框

R - Fill a dataframe based on presence for PCA

我正在处理一个数据集,我正在尝试对出现在多个样本中的数据子集执行 PCA。我想通过在示例中查找 1 或不存在 0 字符来做到这一点。

下面是起始数据框的简化示例:

> df
  Sample SForm
1     S1     A
2     S1     B
3     S2     A
4     S2     B
5     S2     C
6     S3     B
7     S3     C

我希望能够得到一个数据框,其中存在或不存在为每个样本列出的 df 的 SForm 列。如下图:

> df_pca
  S1 S2 S3
A  1  1  0
B  1  1  1
C  0  1  1

如能提供任何帮助,我们将不胜感激!

一个使用 tidyverse 的解决方案,

df = as.data.frame(rbind(c("S1", "A"), 
                         c("S1", "B"), 
                         c("S2", "A"), 
                         c("S2", "B"), 
                         c("S2", "C"), 
                         c("S3", "B"), 
                         c("S3", "C")))

df_pca = df %>% 
    count(V1, V2) %>% 
    tidyr::spread(key = V1,value = n) %>% 
    replace(is.na(.), 0) %>% 
    column_to_rownames(var = "V2")