R将csv文件转换为数据帧

时间:2013-11-11 08:39:41

标签: r csv

我使用代码

 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

1 个答案:

答案 0 :(得分:0)

如果x的第5列中只有两个不同的字符串,则可以使用

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]] == "卖盘"创建逻辑向量(即FALSETRUE)。如果逻辑向量与数学函数一起使用(此处:^),则将它们转换为0 s和1 s的数字向量。 -1 ^ 0 = 1且-1 ^ 1 = -1。