嗨!
有两个共享日期列和ID列的DFS。 df_1
有一个特定ID的行,而df_2
具有该ID的多行。
在df_2
中,我要提取与df_1
第一行的ID匹配的行,然后仅重新提取少于df_1
第一行中的日期的行。
我要对df_1
的整个行重复此过程。
而且我想使用rbind将其捆绑为一个数据。
R中的代码
df_3 <- data.frame()
for (i in 1:nrow(df_1)){
x <- subset(df_2, id == df_1[['id']][i])
y <- subset(x, date < df_1[['date']][i])
df_3 <- rbind(df_3, y)
}
我怎么在sas中做到这一点?
请帮助我。
答案 0 :(得分:0)
您可以使用proc iml
来实现该功能,如下所示:
proc iml;
/* id - first colum */
/* date - second column */
df_1 = {102 20180102, 103 20180105, 104 20180108};
df_2 = {102 20180101, 102 20180103, 103 20180103, 103 20180107,
104 20180101, 104 20180102, 104 20180103};
free df_3;
do i = 1 to nrow(df_1);
x = df_2[loc(df_2[, 1] = df_1[i, 1]), ];
y = x[loc(x[, 2] < df_1[i, 2]), ];
df_3 = df_3 // y;
end;
print df_1 df_2 df_3;
输出: