Ответ 1
dcast из пакета reshape2 делает следующее:
require(reshape2)
dcast(data, test ~ ID , value_var = 'test_result' )
# test 1 2 3 4 5
#1 A NA 9 11 NA NA
#2 B 10 NA NA NA NA
#3 C NA NA NA 7 NA
#4 F NA NA NA NA 5
Мои data.frame выглядят как
ID | test | test_result
1 | B | 10
2 | A | 9
3 | A | 11
4 | C | 7
5 | F | 5
И я хочу получить что-то вроде этого:
test | test_reult_ID1 | test_result_ID2 | test_result_ID3 ...
A | NA | 9 | 11
B | 10 | NA | NA
Он работает с параметром reshape() в широком формате только с несколькими случаями, но с целым фреймом данных (около 23 000 идентификаторов) reshape() занимает слишком много времени. Melt() и cast() преобразуют данные, но заменяют значения test_result на частоту теста. Любые другие идеи, как управлять этим? Спасибо!
dcast из пакета reshape2 делает следующее:
require(reshape2)
dcast(data, test ~ ID , value_var = 'test_result' )
# test 1 2 3 4 5
#1 A NA 9 11 NA NA
#2 B 10 NA NA NA NA
#3 C NA NA NA 7 NA
#4 F NA NA NA NA 5
Другое решение с использованием функции reshape
в base
R.
reshape(mydf, direction = 'wide', idvar = 'test', timevar = 'ID',
v.names = 'test_result', sep = "_")
ИЗМЕНИТЬ. Я вижу, что вы уже пробовали reshape
, и это заняло слишком много времени. Можете ли вы предоставить более подробную информацию о своих фактических данных?