我正在尝试比较具有不同尺寸的两个时间序列数据帧。
Market_Cap
Date Stock_A Stock_B Stock_C
01.01.1990 1 3 7
01.02.1990 2 4 8
01.03.1990 3 5 1
01.04.1990 4 6 2
Market_Cap_quantiles
Date Bottom_quantile
01.01.1990 1.4
01.02.1990 2.4
01.03.1990 1.4
01.04.1990 2.4
是否有一个优雅的解决方案,如果Market_Cap_quantile中存在股票,则检查Market_Cap的每一行,如果没有用NA替换该值。所以我最终得到这样的东西:
Bottom_Stocks
Date Stock_A Stock_B Stock_C
01.01.1990 1 NA NA
01.02.1990 2 NA NA
01.03.1990 NA NA 1
01.04.1990 NA NA 2
非常感谢你的帮助!
答案 0 :(得分:0)
我们可以做到
df1[-1][df1[-1] > df2[,2]] <- NA
df1
# Date Stock_A Stock_B Stock_C
#1 01.01.1990 1 NA NA
#2 01.02.1990 2 NA NA
#3 01.03.1990 NA NA 1
#4 01.04.1990 NA NA 2
答案 1 :(得分:0)
ifelse check和%in%应该可以完成工作。
> a <- c(1:5)
> b <- c(11:15)
> c <- c(13:17)
> df <- data.frame(a, b)
> df2 <- data.frame(a, c)
> df
a b
1 1 11
2 2 12
3 3 13
4 4 14
5 5 15
> df2
a c
1 1 13
2 2 14
3 3 15
4 4 16
5 5 17
> df[,3] <- ifelse(df[,2] %in% df2[,2], df[,2], NA)
> df
a b V3
1 1 11 NA
2 2 12 NA
3 3 13 13
4 4 14 14
5 5 15 15