这是我的数据帧:
df <- structure(list(Species = c("AUS", "AUS", "AUS", "AUS", "AUS",
"AUS", "AUS", "AUS", "AUS", "AUS", "AUS", "AUS", "AUS", "AUS",
"AUS", "AUS", "AUS", "AUS", "AUS", "AUS", "AUS", "AUS", "AUS",
"AUS", "AUS", "AUS", "AUS", "AUS", "AUS", "AUS", "AUS", "AUS",
"AUS", "AUS", "AUS", "AUS", "AUS", "AUS", "AUS", "AUS", "AUS",
"ERE", "ERE", "ERE", "ERE", "ERE", "ERE", "ERE", "ERE", "ERE",
"ERE", "ERE", "ERE", "ERE", "ERE", "ERE", "ERE", "ERH", "ERH",
"ERH", "ERH", "ERH", "NEA", "NEA", "NEA", "NEA", "NEA", "NEA",
"NEA", "NEA", "NEA", "NEA", "NEA", "NEA", "NEA", "NEA", "NEA",
"NEA", "NEA", "NEA"), Specimen = c("KP 29286", "KP 34725", "LH3",
"LH3", "LH3", "LH3", "LH3", "LH3", "LH6", "LH6", "LH6", "LH6",
"LH6", "MLD11", "MLD11", "MLD43", "Sts24", "Sts24", "Sts24a",
"Sts50", "Sts52a/b", "Sts52a/b", "Sts52a/b", "Sts52a/b", "Sts52a/b",
"Sts52a/b", "Sts52a/b", "Stw132", "Stw151", "Stw151", "Stw151",
"Stw151", "Stw183", "Stw425", "LH2", "Sts24a", "Stw 284", "Stw 285",
"Stw 37", "Stw 402", "Stw 284", "KNM-ER 1590", "KNM-ER 1590",
"Sangiran 4", "KNM-WT 15000", "KNM-WT 15000", "KNM-WT 15000",
"KNM-WT 15000", "KNM-WT 15000", "KNM-WT 15000", "KNM-WT 15000",
"KNM-WT 15000", "KNM-WT 15000", "KNM-WT 15000", "KNM-WT 15000",
"KNM-WT 15000", "KNM-WT 15000", "OH6", "SK 74b", "KNM-ER 808",
"KNM-ER 808", "SK27", "1", "2", "3", "4", "5", "6", "7", "8",
"9", "10", "11", "12", "13", "14", "15", "16", "17", "18"), Tooth = c("LC",
"LI1", "UP3", "UC", "UI1", "UI2", "UI2", "UI1", "UP3", "UI2",
"UC", "UI2", "LC", "UI2", "UC", "UI1", "LI2", "LI1", "UI2", "LC",
"LI1", "LC", "UI2", "UC", "LI2", "UI1", "UC", "LC", "UI2", "LI1",
"UI1", "LI2", "UC", "LI2", "LI1", "UI1", "UM2", "LM2", "UM3",
"UM1", "UM2", "UC", "UI1", "UC", "LI2", "UI1", "UI2", "LC", "UI2",
"UI2", "UI1", "LI1", "LI2", "UI1", "LC", "LC", "UC", "UI2", "LI1",
"UI2", "UI1", "UC", "LC", "LC", "LC", "LC", "LC", "LC", "LC",
"LC", "LC", "LI1", "LI1", "LI1", "LI2", "LI2", "LI2", "LI2",
"LI2", "LI2"), cod = c("D", "D", "21", "21", "21", "21", "D",
"D", "21", "21", "21", "D", "D", "D", "D", "D", "D", "D", "D",
"D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D", "D",
"D", "D", "28", "D", "23", "23", "23", "23", "60", "D", "D",
"D", "20", "20", "20", "20", "D", "D", "D", "D", "D", "D", "D",
"D", "D", "21", "28", "D", "D", "D", "G", "G", "G", "G", "G",
"G", "G", "G", "G", "G", "G", "G", "G", "G", "G", "G", "G", "G"
)), .Names = c("Species", "Specimen", "Tooth", "cod"), row.names = c(NA,
80L), class = "data.frame")
我怎么能得到这样一张桌子:
我希望它首先按种类重新排序,按牙齿分组,计算每个种类/牙齿有多少牙齿,列出样本(用逗号分隔),以及列出代码(cod)。