这是我有一个示例数据框
mydataf.tickersymbol mydataf.yr_qtr mydataf.act_mean
1 ABC 20084 BB
2 ABC 20091 BB
3 ABC 20092 BB
4 ABC 20093 BB
5 DEF 20084 BB
6 DEF 20091 BB
7 DEF 20092 BB
8 DEF 20093 BB
9 DEF 20094 BB
10 GEF 20092 BB
11 GEF 20093 BB
12 GEF 20094 M
尝试通过为每个行情记录加入
yr_qtr
并关心丢失的数据值来获得的输出。我可以遍历此循环并为所有检查创建逻辑,但是似乎通过数据框我应该能够使用r数据框功能来做到这一点? 20084 20091 20092 20093 20094
ABC AA BB BB BB
DEF BB BB BB BB BM
GEF BB BB M
最佳答案
我只会做:
library(tidyr)
df %>% spread(mydataf.yr_qtr, mydataf.act_mean)
或使用
reshape2
包:library(reshape2)
dcast(df, mydataf.tickersymbol ~ mydataf.yr_qtr,
value.var = "mydataf.act_mean")
这使:
mydataf.tickersymbol 20084 20091 20092 20093 20094
1 ABC BB BB BB BB <NA>
2 DEF BB BB BB BB BB
3 GEF <NA> <NA> BB BB M
或者,如果我们需要“ mydataf.tickersymbol”作为行名,请使用
acast
给出矩阵输出,然后使用as.data.frame
转换回data.framelibrary(reshape)#reshape2_1.4
as.data.frame(acast(df, mydataf.tickersymbol~mydataf.yr_qtr,
value.var='mydataf.act_mean', fill=''))
# 20084 20091 20092 20093 20094
# ABC BB BB BB BB
# DEF BB BB BB BB BB
# GEF BB BB M
关于r - 想要在R中的多列上转置数据帧,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29947423/