如何将字符向量的名称列添加到R中的数据框

时间:2017-08-27 04:53:07

标签: r dplyr

我有一个这样构建的数据框:

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<style>
    #lock-cirle {
        border: solid 2px #9f070a;
        border-radius: 100%;
        width: 100px;
        height: 100px;
        margin: 0px auto;
        margin-top: 5%;
        margin-bottom: 5%;
    }

    #lock-icon{
        font-size: 50px;
        color: #9f070a;
        margin: 27%;
    }


</style>

</head>
<body>
<div class="col-xs-12 col-sm-12 col-md-8 col-md-offset-2 text-center">
    <div id="lock-cirle"  style="background-color: yellow;">
        <i class="fa fa-lock" id="lock-icon" style="background-color: green;"></i>
    </div>
</div>

</body>
</html>

我需要添加一列伴随此数据框行的名称。该列为c(“Group1”,“Group2”,“Group3”,“Group4”,“Group5”)。

如何使用自己的列名添加此列名称,例如“Group_Name”?

最终结果如下:

dput(au.weighted.scores)

    structure(list(AUDIT = c(0.283333333333333, 0.283333333333333, 
    0.183333333333333, 0.3, 0.2625), CORC = c(0.2, 0, 0.76, 0.82, 
    0.545), GOV = c(0.82, 0.82, 0.74, 0.66, 0.76), PPS = c(0.2, 0.2, 
    0.2, 0.266666666666667, 0.216666666666667), TMSC = c(0.525, 0.525, 
    0.25, 0.158333333333333, 0.189583333333333), TRAIN = c(0.233333333333333, 
    0.233333333333333, 0.216666666666667, 0.266666666666667, 0.2375
    )), .Names = c("AUDIT", "CORC", "GOV", "PPS", "TMSC", "TRAIN"
    ), row.names = c(NA, -5L), class = "data.frame")

2 个答案:

答案 0 :(得分:2)

我们可以使用pastecbind向原始数据集创建向量

cbind(Group_Name = paste0("Group", seq_len(nrow(au.weighted.scores))), au.weighted.scores)
#  Group_Name     AUDIT  CORC  GOV       PPS      TMSC     TRAIN
#1     Group1 0.2833333 0.200 0.82 0.2000000 0.5250000 0.2333333
#2     Group2 0.2833333 0.000 0.82 0.2000000 0.5250000 0.2333333
#3     Group3 0.1833333 0.760 0.74 0.2000000 0.2500000 0.2166667
#4     Group4 0.3000000 0.820 0.66 0.2666667 0.1583333 0.2666667
#5     Group5 0.2625000 0.545 0.76 0.2166667 0.1895833 0.2375000

请注意,我们使用了cbind,因此该列将位于预期输出中的第一个位置

答案 1 :(得分:2)

如果你只想要最简单的方法,我会用这个:

au.weighted.scores$Group_Name <- paste0("Group", 1:5)