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