重塑一列中值的数据

Eli*_*isa 2 r reshape dataframe melt

我的data.frame看起来像这样

ID | test | test_result
1  |  B   |   10
2  |  A   |   9
3  |  A   |   11
4  |  C   |   7
5  |  F   |   5
Run Code Online (Sandbox Code Playgroud)

我希望得到这样的东西:

test | test_reult_ID1 | test_result_ID2 | test_result_ID3 ...
 A   |   NA           |     9           |   11
 B   |   10           |     NA          |   NA
Run Code Online (Sandbox Code Playgroud)

它使用reshape()到宽格式,只有少数情况,但整个数据框(大约23.000 ID)reshape()需要太长时间.Melt()和cast()会对数据进行重新整形,但会将test_result中的值替换为测试频率.任何其他想法如何管理?谢谢!

Ale*_*lex 6

来自reshape2包的dcast执行此操作:

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
Run Code Online (Sandbox Code Playgroud)

  • 解决了它:问题是由于某种原因,一个ID有三行而不是两行.duplicated()解决了那个问题. (4认同)