【发布时间】:2014-05-19 19:04:33
【问题描述】:
如何翻译 CLASS 列,以便得到一个新列 CLASS2,其中“1”=“positive”、“-1”=“negative”、“0”=“neutral”。我知道这是一个非常基本的问题,我认为可以为此使用ifelse()。但我就是不知道如何正确使用该功能。
DATE <- c("01.01.2000","02.01.2000","03.01.2000","06.01.2000","07.01.2000","09.01.2000","10.01.2000","01.01.2000","02.01.2000","04.01.2000","06.01.2000","07.01.2000","09.01.2000","10.01.2000")
RET <- c(-2.0,1.1,3,1.4,-0.2, 0.6, 0.1, -0.21, -1.2, 0.9, 0.3, -0.1,0.3,-0.12)
CLASS <- c("1","-1","0","1","1","-1","0","1","-1","-1","1","0","0","0")
df <- data.frame(DATE, RET, CLASS)
df
输出应如下所示:
DATE <- c("01.01.2000","02.01.2000","03.01.2000","06.01.2000","07.01.2000","09.01.2000","10.01.2000","01.01.2000","02.01.2000","04.01.2000","06.01.2000","07.01.2000","09.01.2000","10.01.2000")
RET <- c(-2.0,1.1,3,1.4,-0.2, 0.6, 0.1, -0.21, -1.2, 0.9, 0.3, -0.1,0.3,-0.12)
CLASS <- c("1","-1","0","1","1","-1","0","1","-1","-1","1","0","0","0")
CLASS2 <- c("positive", "negative", "neutral", "positive", "positive", "negative", "neutral", "positive", "negative", "negative", "positive", "neutral", "neutral", "neutral")
df <- data.frame(DATE, RET, CLASS, CLASS2)
df
# DATE RET CLASS CLASS2
# 1 01.01.2000 -2.00 1 positive
# 2 02.01.2000 1.10 -1 negative
# 3 03.01.2000 3.00 0 neutral
# 4 06.01.2000 1.40 1 positive
# 5 07.01.2000 -0.20 1 positive
# 6 09.01.2000 0.60 -1 negative
# 7 10.01.2000 0.10 0 neutral
# 8 01.01.2000 -0.21 1 positive
# 9 02.01.2000 -1.20 -1 negative
# 10 04.01.2000 0.90 -1 negative
# 11 06.01.2000 0.30 1 positive
# 12 07.01.2000 -0.10 0 neutral
# 13 09.01.2000 0.30 0 neutral
# 14 10.01.2000 -0.12 0 neutral
谢谢!
【问题讨论】:
-
您真的将 CLASS 存储为一个因素吗?这有关系吗?
标签: r if-statement dataframe character