I am running a cluster analysis on a random dataset (the precise dataset doesn't matter). After performing the analysis and assigning the optimal cluster number to perform the cutree() function, I have a repetitive bit of code used to generate summaries that I am trying to replace via a loop.
The code used up to this point is...
library(cluster)
library(dplyr)
library(psych)
df_dist <- dist(df)
df_hclust <- hclust(df_dist, method = "ward.D2")
plot(df_hclust, hang = -1)
df_hclust_cut <- cutree(df_hclust, k = 4)
df <- mutate(df, cluster = df_hclust_cut)
The section of code I want to replace is...
cluster1 <- filter(df, cluster == 1)
cluster2 <- filter(df, cluster == 2)
cluster3 <- filter(df, cluster == 3)
cluster4 <- filter(df, cluster == 4)
The code I was hoping to use was...
for (C in 1:4) {
paste0("cluster", C) <- filter(df, cluster == C)
}
But then I get the following error message...
Error in paste0("cluster", C) <- filter(df, cluster == C) : target of assignment expands to non-language object
How do I create a loop to create the four filtered datasets, and change the value used in the filter function?