#r
#r
Вопрос:
У меня есть набор данных эксперимента, где каждая строка является конкретным тестом. Каждый участник выполнил несколько тестов. Каждый участник идентифицируется уникальным ID.in столбец участника.
Я хочу переделать свои данные так, чтобы каждая строка была одним участником, с данными в столбцах. Я пытался использовать приведение из reshape
библиотеки, но моя команда не работает:
cast(myData, particiant ~ Age)
например, чтобы получить ряды участников с соответствующим возрастом.
Любая помощь была бы высоко оценена.
Комментарии:
1. ты расплавился
myData
первым?cast
для работы требуется «расплавленный» data.frame. Какую ошибку вы получили? Если вы включите первые 15 или около того строк myData, люди смогут помочь вам гораздо эффективнее. Пожалуйста, используйтеdput(myData)
для включения вашего data.frame.2. Чейз, спасибо за быстрые комментарии. Я понимал, что если мои данные были тестовыми, то они уже были расплавлены. Возможно, я неправильно это понял. Я попытался опубликовать несколько строк данных. К сожалению, это просто выглядит как искаженный беспорядок, поскольку в нем так много столбцов.
Ответ №1:
В отсутствие данных, вот мое лучшее предположение о вашей проблеме и решение, предполагающее, что мое предположение верно.
# create dummy data
mydf = data.frame(participant = rep(1:3, each = 3),
test = rep(letters[1:3], times = 3),
result = sample(100, 9, replace = T))
Вот как выглядит фрейм данных
participant test result
1 1 a 20
2 1 b 17
3 1 c 63
4 2 a 60
5 2 b 67
6 2 c 16
7 3 a 49
8 3 b 64
9 3 c 75
Теперь, если вы хотите, чтобы каждая строка содержала все результаты теста для участника, вот как вы бы cast
это сделали.
mydf2 = cast(data = mydf, participant ~ test, value = "result")
Это дает нам фрейм данных, показанный ниже
participant a b c
1 1 20 17 63
2 2 60 67 16
3 3 49 64 75
Если вы можете dput
использовать свой фрейм данных, было бы проще предоставить более индивидуальное решение для вашей проблемы и диагностировать ошибку. Надеюсь, это было полезно