2017-03-02 12 views
1

異なる次元の2つのtimeseriesデータフレームを比較しようとしています。異なる次元のデータフレームを比較する

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にbelonges、およびNAによって値を交換する場合ではない場合Market_Capの各行をチェックエレガントな解決策があります。私はこのようなもので終わるように:

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

[マージ](http://stackoverflow.com/questions/1299871)で日付を指定し、列を更新します。 – zx8754

答えて

0

我々は%でifelseチェックして%が作業を行うことができるはず

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 
+2

これは、両方のデータフレームのDate列の行が行ごとに一致すると仮定すると機能します。私は彼らが '!='の代わりに '<'を望むと思う。 – zx8754

+0

お元気です、ありがとう!私は後でNA i行を挿入することがどうにかできますか?私はエラー値が間違った長さを受け取る。 –

+0

@LucaLiebiあなたのコメントは私には分かりません – akrun

0

を行うことができます。

> 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 
関連する問題