R - 从一个数据帧中查找元素索引并放入另一个

时间:2017-05-02 03:15:28

标签: r dataframe

伙计们,我有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但不确定如何进行最后一步。谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

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