Один из вариантов: xtabs
из base R
out <- xtabs(Value ~ CountryCode + Flow + FuelType, data = ExampleData)
out
#, , FuelType = coa
# Flow
#CountryCode manufact mining road services
# ALB 113.1 0.0 0.0 3.3
#, , FuelType = nga
# Flow
#CountryCode manufact mining road services
# ALB 0.0 0.0 0.0 2.4
Мы можем извлекать отдельные элементы либо с помощью индекса позиции, либо с помощью клавиш
out["ALB", "manufact", "coa"]
#[1] 113.1
или с помощью tapply
tapply(ExampleData[['Value']], ExampleData[-4], FUN = I)
данные
ExampleData <- structure(list(CountryCode = c("ALB", "ALB", "ALB", "ALB", "ALB",
"ALB"), Flow = c("road", "services", "manufact", "mining", "road",
"services"), FuelType = c("coa", "coa", "coa", "coa", "nga",
"nga"), Value = c(0, 3.3, 113.1, 0, 0, 2.4)),
class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6"))