Если вы просто хотите, чтобы отобразить это, и я бы посоветовал не «трансформировать», вы можете сделать это:
with(d1, aggregate(Age, list(Gender=Gender), list))
Gender x
1 F 26, 24, 20, 26
2 M 15, 38, 17, 35
Я заметил, что @Henrik удалил свой ответ, который использовал aggregate.formula
, возможно, из-за моего ответа, который был бы неудачным, потому что я собирался удалить мой в пользу его. Это то, что он написал, и я думаю, что это лучше, чем у меня:
aggregate(Age ~ Gender, data = d1, function(x) paste(x, collapse = ", "))
Но быть в известность, что как это и ранее принятый ответ возвращают те стареют переменные в качестве факторов.
Вы должны сделать паузу, чтобы пересмотреть эту работу. Создание тактов данных «похоже» на конкретный выходной дисплей, вероятно, усложнит ситуацию в будущем. Первое, что вам нужно сделать, это определить, почему вы хотите отображать данные таким образом. –