data() datairis <- iris ?iris library(dplyr) data1 <- tbl_df(datairis) data1 <- datairis ?select # remove columns data2 <- select(data1, -Species) ?filter # remove rows data3 <- filter(data2, Petal.Length > 6.5) data3 select(data3, Sepal.Length:Petal.Length) select(data3, -(Sepal.Length:Petal.Length)) select(data3, Sepal.Length, Petal.Length) dataTemp <- rbind(data3, c(1, 2, NA, 3)) dataTemp na.omit(dataTemp) # remove all rows with NAs # one way to normalize data scaledata2 <- scale(data2) colMeans(scaledata2) # faster version of apply(scaled.dat, 2, mean) apply(scaledata2, 2, sd) # save data to current working directory # as a text file write.table(scaledata2, "data.txt", sep=" ", row.names = FALSE, col.names = FALSE) # install.packages("TDAmapper") library("TDAmapper") # The fastcluster package is not necessary. By loading the # fastcluster package, the fastcluster::hclust() function # automatically replaces the slower stats::hclust() function # whenever hclust() is called. # install.packages("fastcluster") require(fastcluster) # The igraph package is necessary to view simplicial complexes # (undirected graph) resulting from mapper1D(). library(igraph) P<- select(tbl_df(scaledata2), Petal.Length) # Apply mapper m1 <- mapper1D( distance_matrix = dist(data.frame(scaledata2)), filter_values = P, num_intervals = 10, percent_overlap = 50, num_bins_when_clustering = 10) # create and plot mapper graph g1 <- graph.adjacency(m1$adjacency, mode="undirected") plot(g1, layout = layout.auto(g1) )