Is this what you want?
library(reshape2)
library(splitstackshape)
# sample data
df <- data.frame(price = c(17, 35, 12, 26, 1.35, 10),
material = c("linen",
"wax string metal cube",
"Metal nickel linen cotton",
"brass",
"linen",
"cotton silk wood"))
# split the concatenated material variable
df2 <- concat.split(data = df, split.col = "material", sep = " ", drop = TRUE)
# replace blanks with NA
df2[df2 == ""] <- NA
# melt data to long format
df3 <- melt(df2, id.vars = "price", na.rm = TRUE)
# calculate summary stats by material (= 'value' variable)
df4 <- aggregate(price ~ value, data = df3, summary)
# value price.Min. price.1st Qu. price.Median price.Mean price.3rd Qu. price.Max.
# 1 brass 26.000 26.000 26.000 26.000 26.000 26.000
# 2 cotton 10.000 10.500 11.000 11.000 11.500 12.000
# 3 cube 35.000 35.000 35.000 35.000 35.000 35.000
# 4 linen 1.350 6.675 12.000 10.120 14.500 17.000
# 5 metal 35.000 35.000 35.000 35.000 35.000 35.000
# 6 Metal 12.000 12.000 12.000 12.000 12.000 12.000
# 7 nickel 12.000 12.000 12.000 12.000 12.000 12.000
# 8 silk 10.000 10.000 10.000 10.000 10.000 10.000
# 9 string 35.000 35.000 35.000 35.000 35.000 35.000
# 10 wax 35.000 35.000 35.000 35.000 35.000 35.000
# 11 wood 10.000 10.000 10.000 10.000 10.000 10.000