【问题标题】:Repeat elements of matrix based on counts in vector根据向量中的计数重复矩阵的元素
【发布时间】:2023-03-30 10:08:01
【问题描述】:

我有两个数据框 (df),它们共享一个名为 plot.id 的列标题。在第一个 df 中,plot.id 记录根据每个地块内监控的树木数量重复可变次数。第二个df对于每个plot.id只有一条记录,并且包含一个名为load的变量,该变量在绘图级别(而不是像第一个df中的树级别)收集,因此每个绘图记录仅列出一次.

目标:我需要根据在第一个 df 中重复 plot.id 的次数从第二个 df 重复 load 值(所有图都重复不同的次数)。我的示例 dfs 如下:

 df1 <- data.frame(plot.id = rep(c("plot1", "plot2", "plot3"), c(3,2,5)),
             tree.tag = c(111,112,113,222,223,333,334,335,336,337)) 

 df2 <- data.frame(plot.id = c("plot1", "plot2", "plot3"), load=c(17, 6, 24))

我已经接近解决这个问题了,但可惜我正处于解决问题的第 2 天,但无法解决!

【问题讨论】:

    标签: r vector matrix


    【解决方案1】:

    使用match:

    df2[match(df1$plot.id,df2$plot.id),]
    

    上面的结果是:

        plot.id load
    1     plot1   17
    1.1   plot1   17
    1.2   plot1   17
    2     plot2    6
    2.1   plot2    6
    3     plot3   24
    3.1   plot3   24
    3.2   plot3   24
    3.3   plot3   24
    3.4   plot3   24
    

    【讨论】:

      猜你喜欢
      • 2020-11-11
      • 1970-01-01
      • 2019-05-13
      • 1970-01-01
      • 2018-06-17
      • 1970-01-01
      • 2017-09-10
      • 2021-01-01
      • 2021-09-01
      相关资源
      最近更新 更多