【发布时间】:2021-08-08 02:18:28
【问题描述】:
我正在匹配两个表并将主表中的值提取到另一个表中。
我有两张桌子(请看下图):
“表1”由不同日期的坐标值组成;该表有一百万行(每行代表一个坐标)和三千列(每列代表一个特定日期) “表 2”看起来与表 1 相似。但“表 2”单元格的值是“表 1”的列名。
目的:根据两个表中的“日期...”和“坐标”,将“表1”单元格中的值提取到“表2”单元格中。
创建了一个简单的循环(参见下面的代码)。但是要花太多时间才能得到结果。
table1<-data.frame(longitude=10:12,
latitude=20:22,
a=1:3,
b=2:4,
c=3:5,
d=4:6)
colnames(table1)[3:6]<-c("2020-01-01","2020-01-02","2020-01-03","2020-01-04")
table1
table2<-data.frame(longitude=10:12,
latitude=20:22,
date1=c("2020-01-02","2020-01-04","2020-01-03"),
date2=c("2020-01-04","2020-01-02","2020-01-01"),
date3=c("2020-01-03","2020-01-02","2020-01-04"))
table2
for(i in 1:nrow(table1)){
w<-table2[i,-(1:2)]
for(j in 1:length(w)){
table2[i,j+2]<-table1[i,which(colnames(table1) %in% w[j])]
}}
table2
如果有人可以与我分享 R 中的解决方案,我们将不胜感激。 对于具有数百万行和数千列的表
【问题讨论】:
-
已经给出了一个例子。期待您的回答。