根据值为数据编码新的分类标签列

时间:2017-08-30 18:11:03

标签: python r encoding

我有一个数据集,它是商品价格的每日记录。根据价格数据,我想编码一个新的"动作"变量。这个变量应该用-1,0或1标记价格数据的每一行。这些数字对应于"卖出,什么都不做,买"。我可以用R或Python做到这一点。最有效的方法是什么?

示例输入:

8/26/2017, 5
8/27/2017, 5
8/28/17, 1
8/29/17, 3
8/30/17, 5 

示例输出:

8/26/2017, -1
8/27/2017, -1
8/28/17, 1
8/29/17, 0
8/30/17, -1 

1 个答案:

答案 0 :(得分:0)

我们可以使用matchR

中对此进行索引
df1$price <- c(-1, 1, 0)[match(df1$price, c(5, 1, 3))]
df1$price
#[1] -1 -1  1  0 -1

数据

df1 <- structure(list(date = c("8/26/2017", "8/27/2017", "8/28/17", 
"8/29/17", "8/30/17"), price = c(5, 5, 1, 3, 5)), .Names = c("date", 
"price"), class = "data.frame", row.names = c(NA, -5L))