我是R-studio的初学者。我有一个长格式的列表,收集了312家公司的数据变量。从这些数据中,我想计算新的变量,并将它们添加为行,而不是列。例如,所有公司的总负债/总资产作为一个新变量。我似乎只能找到添加和计算新变量作为列的方法,但我需要的格式是长格式,而不是宽。最终目标是进行多变量回归。
这是Excel中数据结构的链接。https://i.stack.imgur.com/jNx96.jpg。RIC是公司的ID。这是一个公司的所有变量,一次一个。
提前谢谢你。
我依赖于多个YouTube视频和网站。我读过关于突变函数,但不知道如何添加新的变量作为行在正确的地方,而不是列。
第一列用数字命名公司,第二列用FCC代码命名公司,第三列用数值命名公司:
example <- data.frame(id = rep(1:3, 3),
fcc = rep(c("A", "B", "C"), each = 3),
data = round(rnorm(9, 1000, 200), 2))
print(example)
#> id fcc data
#> 1 1 A 931.25
#> 2 2 A 422.73
#> 3 3 A 1283.94
#> 4 1 B 1013.70
#> 5 2 B 1056.49
#> 6 3 B 1130.90
#> 7 1 C 734.10
#> 8 2 C 819.83
#> 9 3 C 1326.22
如果我没理解错的话,你是想要所有fcc == "A"对于所有fcc == "B"和所有fcc == "C"。这里有函数aggregate
:
aggregate(data ~ fcc, data = example, FUN = sum)
#> fcc data
#> 1 A 3286.13
#> 2 B 3083.45
#> 3 C 2770.15
我看不出有什么理由,我建议不要将它添加到原始数据帧中。这些数据本质上是不同的。原始数据是一回事,聚合数据是另一回事,所以把它们放在同一列中是违背你应该如何使用R数据框架的。这听起来像是人们可能会在电子表格中做的事情(例如,MS Excel),但这并不是一个好主意。正如@I_O在他的评论中所写:有rbind
,但我不打算证明这一点。