我有两个数据帧。这是我的第一个例子:
index anom
1 50 400
2 60 600
3 70 550
...
之前的数据框有一列'索引',这是我需要从以下数据框示例中提取的行:
date value
1 5/2/14 200
2 5/3/14 300
3 5/4/14 400
...
基本上,我需要将一个数据帧列(第一个数据帧中的'索引列)放入某种列表中。然后我需要使用该列表来选择第二个数据帧中的行。
这样做的最佳方式是什么?
答案 0 :(得分:0)
尝试:
d.a <- read.table(file=textConnection("index anom
1 2 400
2 3 600
3 1 550
"))
d.b <- read.table(file=textConnection("date value
1 5/2/14 200
2 5/3/14 300
3 5/4/14 400
"))
merge(d.a, d.b, by.x="index", by.y="row.names")
答案 1 :(得分:0)
所以,为了清楚起见,我们假设你有:
df1 <- data.frame(index=c(50, 60, 70), anom=c(400,600,550))
df2 <- data.frame(index=c(20, 30, 40, 50, 60, 70), date=c("4/29/14", "4/30/14", "5/1/14", "5/2/14","5/3/14","5/4/14"), value=c(1,2,3,200,300,400))
您没有在数据框2的示例中列出索引,但我认为它就在那里。然后,使用df1中的索引在df2中进行数据的内连接并返回感兴趣的列:
df3 <- merge(data.frame(index=df1$index), df2)[,c("date","value")]
print(df3)
date value
1 5/2/14 200
2 5/3/14 300
3 5/4/14 400
这是你所希望的吗?