将具有重复观察值的列转换为 R 中每个观察值的列

Turn a column with repeating observations into a column for each observation in R

我的数据目前如下图所示。我想要的是“permno”变量的所有唯一值的单个列,其中“ret_excess”的以下值作为行。 所以会有一个“10145”列,一个“10516”等等。 Permno 变量是一个股票标识符,ret_excess 是每月 returns。有一个日期变量表示观察的 year/month,我已将其删除但可以根据需要添加 :)

提前致谢!

How my current data look

听起来您想将 table 从长转为宽。为了使这一点有意义,需要一个或多个列来唯一标识每个观察结果。

假设日期列是每个 permno + ret_excess 对的唯一标识符,您可以这样做:

library(tidyr)
df %>%
  pivot_wider(id_cols = date, names_from = permno, values_from = ret_excess)