1

私はコードを使用します

 x<-read.csv(filename,sep="\t",head=TRUE)   
 x<-x[,-3] 

次のようにデータを取得します。

14:59:46  16.10         96     154560 买盘  
14:59:41  16.10          1       1610 买盘  
14:59:36  16.09          2       3218 买盘  
14:59:21  16.09          3       4827 买盘  
14:59:21  16.10         15      24150 买盘    
14:59:16  16.03         32      51296 卖盘  

このデータフレームを次のように変換するにはどうすればよいですか:

14:59:46  16.10         96     154560 1  
14:59:41  16.10          1       1610 1  
14:59:36  16.09          2       3218 1  
14:59:21  16.09          3       4827 1  
14:59:21  16.10         15      24150 1  
14:59:16  16.03         32      51296 -1  

つまり、1 の代わりに文字列「买盘」、-1 の代わりに文字列「卖盘」

4

1 に答える 1

0

の 5 列目に異なる文字列が 2 つしかない場合はx

x[[5]] <- (-1) ^ (x[[5]] == "卖盘")

結果:

#         V1    V2 V3     V4 V5
# 1 14:59:46 16.10 96 154560  1
# 2 14:59:41 16.10  1   1610  1
# 3 14:59:36 16.09  2   3218  1
# 4 14:59:21 16.09  3   4827  1
# 5 14:59:21 16.10 15  24150  1
# 6 14:59:16 16.03 32  51296 -1

使い方?

このコマンドx[[5]] == "卖盘"は、論理ベクトル (つまりFALSEand TRUE) を作成します。論理ベクトルが数学関数 (ここでは ) で使用される場合、それらはs およびs の^数値ベクトルにキャストされます。-1 ^ 0 = 1 および -1 ^ 1 = -1。01

于 2013-11-11T08:58:07.490 に答える