我正在使用一个数据集,我正在尝试对多个样本中出现的数据子集执行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")