R -根据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

我希望能够得到一个数据框架,该数据框架具有存在或不存在为每个样本列出的SForm列df。如下所示:

> 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")

最新更新