How can I sum DBH and Basal area by Tree.Species Compartment, Stand, Transect and Plot?
Tree.Species DBH Basal Area Compartment Stand Transect Plot
Sugar Maple 16.4 211.1336 107 20 2 3
Sugar Maple 25.1 494.55785 107 20 2 3
Hemlock 15.1 178.98785 209 30 1 2
I was trying:
aggregate(.~ Compartment + Stand + Transect + Plot + Tree.Speices, data = Trees, FUN = sum)
but I keep getting this error:
Error in model.frame.default(formula = cbind(DBH, Basal.Area, Transect.., :
variable lengths differ (found for 'Transect')
My variables unique values and there are not all possible combinations in the data.
Compartment: 107 209 310 231
Stand: 20 110 30 240 80 300
Transect: 1 2 3
Plot: 1 2 3 4 5 6
dput:
structure(list(Tree.Speices = structure(c(53L, 49L, 49L, 49L,
49L, 11L, 49L, 12L, 49L, 4L, 49L, 49L, 49L, 53L, 49L, 49L, 4L,
4L, 33L, 4L, 11L, 53L, 11L, 53L, 53L, 21L, 21L, 53L, 49L, 53L,
49L, 49L, 53L, 21L, 4L, 4L, 49L, 12L, 21L, 49L, 49L, 49L, 49L,
9L, 49L, 49L, 11L, 11L, 53L, 47L, 33L, 11L, 5L, 49L, 11L, 11L,
38L, 11L, 49L, 11L, 11L, 11L, 11L, 49L, 53L, 53L, 53L, 47L, 49L,
49L, 49L, 47L, 49L, 33L, 4L, 4L, 47L, 4L, 11L, 49L, 53L, 49L,
11L, 11L, 11L, 49L, 11L, 11L, 11L, 11L, 11L, 49L, 11L, 49L, 47L,
49L, 11L, 11L, 11L, 11L, 21L), .Label = c("American Elm", "Aspen",
"Balsam", "Basswood", "Beech", "Big-Toothed Aspen", "Black Cherry",
"Cedar", "Cottonwood", "Elm", "Hemlock", "Hop Hornbeam", "paper birch",
"Paper Birch", "Poplar", "Quaking Aspen", "Red Maple", "Red Oak",
"Red Spruce", "snag", "Snag", "Snag (Aspen)", "Snag (Basswood)",
"Snag (Beech)", "Snag (Big-Toothed Aspen)", "SNAG (Big-Toothed Aspen)",
"snag (conifer)", "Snag (Conifer)", "Snag (Cottonwood)", "Snag (Elm)",
"Snag (hardwood)", "snag (Hemlock)", "Snag (Hemlock)", "SNAG (Hemlock)",
"Snag (maple)", "Snag (Maple)", "Snag (Oak)", "Snag (Paper Birch)",
"Snag (Poplar)", "Snag (Red Maple)", "snag (Sugar Maple)", "Snag (Sugar Maple)",
"Snag (Sugar)", "Snag (White Ash)", "Snag (White Pine)", "snag (Yellow Birch)",
"Snag (Yellow Birch)", "SNAG (Yellow Birch)", "Sugar Maple",
"White Ash", "White Birch", "White Pine", "Yellow Birch"), class = "factor"),
DBH = c(55.7, 21.3, 14, 38, 6.5, 20.3, 33.2, 6.3, 30.5, 22.3,
32.7, 8.9, 41.8, 30, 24.6, 13.8, 56.6, 49.5, 49.9, 63.2,
28, 39, 21, 25.7, 29.9, 38, 17.5, 22.4, 6.2, 20.3, 18.3,
21, 24.7, 49.5, 6.4, 30.3, 19.4, 6, 37.8, 24.6, 24.4, 9.5,
17.4, 49.2, 26, 31, 23.6, 19.8, 37.9, 25.8, 31.5, 18.1, 34.4,
59.7, 28.2, 21, 16.4, 23.7, 34.4, 24.7, 15.4, 12, 24.2, 34.2,
19.4, 15.1, 34.9, 34.8, 6.6, 61.2, 25.4, 38.8, 28.9, 32.3,
43.9, 33.8, 27.1, 37, 21.2, 26.4, 27.4, 10.6, 55.1, 69.4,
24, 25.4, 51, 20.2, 14.3, 31.8, 48.8, 38.3, 19.6, 26.3, 34.5,
6.3, 41.3, 32.6, 14.6, 9.1, 57.8), Basal.Area = c(2435.45465,
356.14665, 153.86, 1133.54, 33.16625, 323.49065, 865.2584,
31.15665, 730.24625, 390.37265, 839.39265, 62.17985, 1371.5834,
706.5, 475.0506, 149.4954, 2514.7946, 1923.44625, 1954.65785,
3135.4784, 615.44, 1193.985, 346.185, 518.48465, 701.79785,
1133.54, 240.40625, 393.8816, 30.1754, 323.49065, 262.88865,
346.185, 478.92065, 1923.44625, 32.1536, 720.70065, 295.4426,
28.26, 1121.6394, 475.0506, 467.3576, 70.84625, 237.6666,
1900.2024, 530.66, 754.385, 437.2136, 307.7514, 1127.58185,
522.5274, 778.91625, 257.17385, 928.9376, 2797.81065, 624.2634,
346.185, 211.1336, 440.92665, 928.9376, 478.92065, 186.1706,
113.04, 459.7274, 918.1674, 295.4426, 178.98785, 956.13785,
950.6664, 34.1946, 2940.1704, 506.4506, 1181.7704, 655.63985,
818.98265, 1512.85985, 896.8154, 576.51185, 1074.665, 352.8104,
547.1136, 589.3466, 88.2026, 2383.26785, 3780.8426, 452.16,
506.4506, 2041.785, 320.3114, 160.52465, 793.8234, 1869.4304,
1151.50865, 301.5656, 542.97665, 934.34625, 31.15665, 1338.96665,
834.2666, 167.3306, 65.00585, 2622.5594), Compartment = c(107L,
107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L,
107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L,
107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L,
107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L,
107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L,
107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L,
107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L,
107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L,
107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L,
107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L, 107L
), Stand = c(20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L,
20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L,
20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L,
20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L,
20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L,
20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L,
20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L,
20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L,
20L, 20L, 20L, 20L, 20L, 20L, 20L, 20L), Transect.. = c(2L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), Plot.. = c(1L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L)), .Names = c("Tree.Speices",
"DBH", "Basal.Area", "Compartment", "Stand", "Transect..", "Plot.."
), row.names = 67:167, class = "data.frame")
The last two column names have two dots at the end and Species is incorrectly spelled:
> names(Trees)
[1] "Tree.Speices" "DBH" "Basal.Area" "Compartment" "Stand"
[6] "Transect.." "Plot.."
Try:
aggregate(.~ Compartment + Stand + Transect.. + Plot.. + Tree.Speices,
data = Trees, FUN = sum)
or remove the dots at the end of all names and correct the spelling:
names(Trees) <- sub("\\.+$", "", names(Trees))
names(Trees) <- sub("Speices", "Species", names(Trees))
aggregate(.~ Compartment + Stand + Transect + Plot + Tree.Species,
data = Trees, FUN = sum)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.