r - 重新排列数据框,以便将行剪切并粘贴为列

标签 r dataframe reshape data-manipulation

我不知道我是否通过标题解释了我的意图,但从本质上讲,我想转换

        mean    sd
v1  -32.72  0.565
v2  -50.47  1.543
v3  -30.17  0.9295
v4  -38.56  0.4541
g1  5.649   0.02509
g2  1.672   0.02992
g3  3.139   0.03507
g4  7.169   0.06703
y1  271.1   3.48
y2  123.7   1.81
y3  138.9   2.727
y4  405.5   4.396


 v.mean v.sd    g.mean  g.sd    y.mean  y.sd
-32.72  0.565   5.649   0.02509 271.1   3.48
-50.47  1.543   1.672   0.02992 123.7   1.81
-30.17  0.9295  3.139   0.03507 138.9   2.727
-38.56  0.4541  7.169   0.06703 405.5   4.396

我想这样做而不使用for循环。我觉得有一些reshape函数可以做到这一点。我有大量使用此配置的数据集。所以,我想要一些 vector 化解决方案...
另外,长度可以是任何长度。在此,样本数据中的序列长度为4。
另外,我对列名不挑剔。我可以使用names(dataframe)=c(...实现。

最佳答案

确实有一个名为reshape的函数。假设您的data.frame命名为“data”,请执行以下操作以获得所需的结果:

data$group <- substr(rownames(data),1,1)
data$id <- substr(rownames(data),2,2)
result <- reshape(data, v.names=c("mean","sd"), idvar="id", timevar="group", direction="wide")

有关详细信息,请参见?reshape

关于r - 重新排列数据框,以便将行剪切并粘贴为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14146943/

相关文章:

r - 使用 rlm 计算稳健回归的 r 平方是否合适

r - 在 R 中进行多重插补后计算预测均值(或预测概率)和 SE

r - 使用匹配功能保留重复项

python - 如何从 Dataframe 中检索具有最近日期的数据?

python - 随机日期和月份,但保留年份和时间间隔

当没有特定重复的列名时, reshape 为长形式

r - Sweave,包括源 R-Function 文件

python - 从 OrderedDict : preserving columns order 列表构建 Pandas DataFrame

python - Pandas 将时间列添加到日期索引

r - 扁平化/非规范化 R 聚合函数的结果