【问题标题】:R - Find index of element from one dataframe and place in anotherR - 从一个数据帧中查找元素的索引并放置在另一个数据帧中
【发布时间】:2017-05-02 12:22:43
【问题描述】:

伙计们,我有 2 个数据框,如下所示。

df1 按相反顺序排序,显示活动发生的次数。
活动 发生次数
步行 38
慢跑 26
跑步 12

df2 显示在活动中消耗的卡路里,再次按照消耗的卡路里的相反顺序排序。
活动 消耗的卡路里
跑步 38
行走 27
慢跑 12

我想在 df2 上添加第二列,显示来自 df1 的 Activity 的行索引。例如,Running 位于第 3 行 df1(按行),但它位于 df2 的第 1 行。因此,有没有办法让我添加第二列,显示 df1 中的行索引,如下所示?

df2 更新:(或 df3)
活动  消耗的卡路里  发生指数
跑步 38       3
走路 27       1
慢跑 12       2

所有数据都来自一个基础表 df0,其中每个 Activity 事件都记录为单独的行。我将其总结为 df1 & df2 但不确定如何进行最后一步。谢谢!

【问题讨论】:

  • 戴尔,阿克伦,谢谢你的回答;他们都很棒! akrun 我接受了你的基于 1 线与 2 线。我都赞成。谢谢!

标签: r dataframe


【解决方案1】:

我们可以使用match 来创建新列

df1$OccurrenceIndex <-  match(df2$Activity, df1$Activity)
df1
#  Activity NoOfOccurrences OccurrenceIndex
#1  Walking              38               3
#2  Jogging              26               1
#3  Running              12               2

【讨论】:

    【解决方案2】:

    您可以将 df1 中的索引分配给新列“索引”。然后,您可以使用merge() 函数按活动名称查找值。

    df1$df1_Index <- as.numeric(row.names(df1))
    df2 <- merge(df2,df1[c("Activity","df1_Index")],by="Activity")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-10
      • 1970-01-01
      • 2021-01-08
      • 1970-01-01
      • 2020-09-18
      • 2017-11-18
      相关资源
      最近更新 更多