【问题标题】:How can I append multiple columns to a dataframe with column names from a specific vector?如何将多个列附加到具有来自特定向量的列名的数据框?
【发布时间】:2015-06-22 03:59:10
【问题描述】:

例如,我有一个包含 2 列的数据框。我需要在此数据框中附加 82 个附加列,并带有特定的列名。这些列名存储在不同的向量(日期)中。我怎样才能有效地做到这一点?我尝试了以下方法:

for(i in 1:length(dates)) {
    peekdata<-cbind(peekdata,dates[i]=0
}

我对 R 还很陌生,如果这是一个愚蠢的问题,我深表歉意

【问题讨论】:

    标签: r


    【解决方案1】:

    你可以在没有循环的情况下做到这一点。

    首先,定义一些样本数据

    peekdata  <- data.frame(orig=1:5)
    dates <- letters[1:10]
    

    现在做

    cbind(peekdata, setNames(replicate(length(dates), 0, simplify=F), dates))
    

    得到

      orig a b c d e f g h i j
    1    1 0 0 0 0 0 0 0 0 0 0
    2    2 0 0 0 0 0 0 0 0 0 0
    3    3 0 0 0 0 0 0 0 0 0 0
    4    4 0 0 0 0 0 0 0 0 0 0
    5    5 0 0 0 0 0 0 0 0 0 0
    

    但你会这样做很奇怪。您以后要填写值吗?因为通常更容易一次计算所有值并将它们相加,而不是从一堆零开始。

    【讨论】:

    • 这成功了!谢谢!我这样做的原因是因为我必须根据特定日期和产品 ID 匹配来自不同数据帧的一堆数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 2013-08-15
    • 1970-01-01
    • 2021-10-26
    • 1970-01-01
    • 2020-12-12
    • 2019-05-24
    相关资源
    最近更新 更多