【问题标题】:How to insert a column inside a dataframe based on vector?如何在基于向量的数据框中插入一列?
【发布时间】:2020-01-09 19:40:27
【问题描述】:

例如,我有一个数据框 data1,其中包含这些列:

A B C D G T Q Y U J N

我还有另一个数据框data2,其行如下:

A B C M
D G K T
Q F Y U
J W E N 

基于上述数据框,我应该在列 C 之后和列 D 之前有一列 M。我还应该在GT 等列之间有一列K

因此我想使用data2 来填补data1 中缺失的列。如果我成功了,data1 应该是:

A B C M D G K T Q F Y U J W E N

到目前为止我的代码:

for(row in 1:nrow(data2))
{
for(column in 1:ncol(data2)){
element = data2[row,column]
for(column in 1:ncol(data1))
{
if(element!=colnames(data1)[column])
{

}

}

}

我现在不确定我的代码应该放在哪里,我不认为这是一个有效的代码。任何帮助表示赞赏。

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    我们可以transpose第二个数据集,转换为vector,并在将原始数据中没有的列分配给NA后将其用作列名

    nm1 <- c(t(data2))
    nm2 <- setdiff(nm1, names(data2))
    
    data1[nm2 ] <- NA
    data1 <- data1[nm1]
    

    【讨论】:

    • 感谢您的回复,什么是“数据”?我假设它是 data1 或 data2
    • @Alonso23 打错了,data1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 2018-01-06
    相关资源
    最近更新 更多