【发布时间】:2019-12-15 04:17:27
【问题描述】:
我的数据“IDrel”有三个变量,“ID”、“category”和“value”,看起来是这样的:
ID category value
1 AU: Duflo, Esther
2 2 AF: MIT
3 3 SO: American Economic Journal: Applied Economics, 2(2), April 2010, pp.
4 4 IS: 1945-7782
5 5 AV: http://www.aeaweb.org/aej-applied/
6 6 DT: Journal Article
7 7 PY: 2010
8 8 AN: 1094392
9 9 TI: Prize Structure and Information in Tournaments: Experimental Evidence
10 10 AU: Freeman, Richard B.; Gelber, Alexander M.
11 11 AF: NBER; NBER
12 12 SO: American Economic Journal: Applied Economics, 2
“类别”有 9 个唯一值,我想将它们中的每一个都变成自己的变量,其值由“值”变量表示。理论上,这应该将变量数增加到 11 个,并将观察数减少 9/10。
所需的输出如下所示:
ID AU: SO. IS: [more variables]
1 Duflo, Esther American Economic Journal 1945-7782 [more values]
2 Freeman, Richard American Economic Journal: [...]
我尝试通过扩展函数来实现这一点:
IDspread<-spread(IDrel, category, value)
我确实得到了 11 个变量,但我得到了相同数量的观察值。结果对我来说似乎很荒谬,这是前 10 个观察结果:
IS: PY:
1 <NA> <NA>
2 <NA> <NA>
3 <NA> <NA>
4 1945-7782 <NA>
我是否正确使用了这个功能?有其他选择吗?
我意识到 ID 变量不反映哪个类别/值属于哪个观察,但我需要重新排序数据以便“获取”每个观察的正确索引 ^^
【问题讨论】:
-
请使用
dput显示示例。