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