r - 如何将 R 数据帧转换为长格式
问题描述
我有数据框:
Santa.Period Index Mean Variance
1 TRUE S&P 500 -5.463827e-05 5.552660e-05
2 TRUE Dow 6.907256e-05 4.798628e-05
3 TRUE NASDAQ Composite -3.683476e-04 7.296956e-05
4 TRUE FTSE 100 1.922876e-03 6.342067e-05
5 TRUE CAC 40 1.223700e-03 9.531649e-05
6 TRUE DAX 1.719576e-04 9.986086e-05
7 FALSE S&P 500 2.488153e-04 1.676608e-04
8 FALSE Dow 2.570371e-04 1.415451e-04
9 FALSE NASDAQ Composite 3.989929e-04 1.898479e-04
10 FALSE FTSE 100 4.931637e-05 1.534737e-04
11 FALSE CAC 40 -3.337471e-05 2.280848e-04
12 FALSE DAX 1.916821e-04 2.142012e-04
我想重塑它,以便每个组合都有一列Santa.Period
和Index
两行给出每个组合的均值和方差。
我一直在摆弄 reshapedcast
几个小时,但无法到达任何地方。
我该如何解决这个问题?
解决方案
没必要dcast
我想。您可以只使用df
然后设置df
列名粘贴Index
和的转置Santa.Period
。试用:
setNames(data.frame(t(df[, -c(1, 2)])),
paste(df$Index, df$Santa.Period, sep = "_"))
# output
S&P 500_TRUE Dow_TRUE NASDAQ Composite_TRUE FTSE 100_TRUE CAC 40_TRUE DAX_TRUE S&P 500_FALSE Dow_FALSE NASDAQ Composite_FALSE FTSE 100_FALSE CAC 40_FALSE DAX_FALSE
Mean -5.463827e-05 6.907256e-05 -3.683476e-04 1.922876e-03 1.223700e-03 1.719576e-04 0.0002488153 0.0002570371 0.0003989929 4.931637e-05 -3.337471e-05 0.0001916821
Variance 5.552660e-05 4.798628e-05 7.296956e-05 6.342067e-05 9.531649e-05 9.986086e-05 0.0001676608 0.0001415451 0.0001898479 1.534737e-04 2.280848e-04 0.0002142012
数据
df <- structure(list(Santa.Period = c(TRUE, TRUE, TRUE, TRUE, TRUE,
TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), Index = c("S&P 500",
"Dow", "NASDAQ Composite", "FTSE 100", "CAC 40", "DAX", "S&P 500",
"Dow", "NASDAQ Composite", "FTSE 100", "CAC 40", "DAX"), Mean = c(-5.463827e-05,
6.907256e-05, -0.0003683476, 0.001922876, 0.0012237, 0.0001719576,
0.0002488153, 0.0002570371, 0.0003989929, 4.931637e-05, -3.337471e-05,
0.0001916821), Variance = c(5.55266e-05, 4.798628e-05, 7.296956e-05,
6.342067e-05, 9.531649e-05, 9.986086e-05, 0.0001676608, 0.0001415451,
0.0001898479, 0.0001534737, 0.0002280848, 0.0002142012)), .Names = c("Santa.Period",
"Index", "Mean", "Variance"), class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"))
推荐阅读
- mysql - SQL for Pivot 和 AVG 使用 MySQL 数据库版本 5.5.62
- cmake - 如果目标存在,则使用 CMake 生成器表达式进行链接
- c++ - C ++:while循环条件中的运行时错误
- python - 我的分频功能有问题吗?
- javascript - 在 Javascript 中是否可以在实例化该类之前将公共类实例字段包装在 getter/setter 中?
- php - 每次在php中搜索时如何获取列更新的总和
- angular - Angular Jasmine 测试 - 我应该测试模型构造函数 Object.assign(this, values) 吗?
- python - 在电子反应应用程序中为独立 python 脚本创建的 Exe 不会在电子应用程序执行时执行
- html - 右侧部分的导航栏突出显示
- python - 相同的权重,实现但不同的结果 n Keras 和 Pytorch