将dataframe中的列转换为因子错误

将dataframe中的列转换为因子错误,r,dataframe,R,Dataframe,我想将Strategy列更改为factor变量,并使用以下内容: jan17dat[,"Strategy"] <- as.factor(jan17dat[,"Strategy"]) 尝试按如下顺序排列列策略 jan17dat<-jan17dat[order(jan17dat$Strategy)] 这是我的部分数据: Strategy Last trade P&L Age KBand 44939.55 20 boll 845

我想将Strategy列更改为factor变量,并使用以下内容:

jan17dat[,"Strategy"] <- as.factor(jan17dat[,"Strategy"])
尝试按如下顺序排列列策略

jan17dat<-jan17dat[order(jan17dat$Strategy)]
这是我的部分数据:

Strategy    Last trade   P&L    Age
KBand       44939.55     20
boll        84550.86     19
te          84550.86     19
RSI         126576.81    130
bh          6321355.26   17363
will        39294.69     17
mae         0            0
ichi        -12876.14    26
cmci        76046.52     16
tas         63197.1      11
KBand       -33729.9     6
ichi        6698.04      4
MACD        6674.36      5
ad          -26684.6     2
will        -33332.65    7
boll        -33299.6     40
te          -33299.6     40
mae         0            0

这两个选项都应该有效,请参见示例:

d1 <- mtcars[, 1:3]
str(d1)
# 'data.frame': 32 obs. of  3 variables:
# $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
# $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
# $ disp: num  160 160 108 258 360 ...

d1[, "cyl"] <- as.factor(d1[, "cyl"])
str(d1)
# 'data.frame': 32 obs. of  3 variables:
# $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
# $ cyl : Factor w/ 3 levels "4","6","8": 2 2 1 2 3 2 3 1 1 2 ...
# $ disp: num  160 160 108 258 360 ...

d2 <- mtcars[, 1:3]
str(d2)
# 'data.frame': 32 obs. of  3 variables:
# $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
# $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
# $ disp: num  160 160 108 258 360 ...

d2$cyl <- as.factor(d2$cyl)
str(d2)
# 'data.frame': 32 obs. of  3 variables:
# $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
# $ cyl : Factor w/ 3 levels "4","6","8": 2 2 1 2 3 2 3 1 1 2 ...
# $ disp: num  160 160 108 258 360 ...

identical(d1, d2)
# [1] TRUE

d1两个选项都应该有效,请参见示例:

d1 <- mtcars[, 1:3]
str(d1)
# 'data.frame': 32 obs. of  3 variables:
# $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
# $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
# $ disp: num  160 160 108 258 360 ...

d1[, "cyl"] <- as.factor(d1[, "cyl"])
str(d1)
# 'data.frame': 32 obs. of  3 variables:
# $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
# $ cyl : Factor w/ 3 levels "4","6","8": 2 2 1 2 3 2 3 1 1 2 ...
# $ disp: num  160 160 108 258 360 ...

d2 <- mtcars[, 1:3]
str(d2)
# 'data.frame': 32 obs. of  3 variables:
# $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
# $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
# $ disp: num  160 160 108 258 360 ...

d2$cyl <- as.factor(d2$cyl)
str(d2)
# 'data.frame': 32 obs. of  3 variables:
# $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
# $ cyl : Factor w/ 3 levels "4","6","8": 2 2 1 2 3 2 3 1 1 2 ...
# $ disp: num  160 160 108 258 360 ...

identical(d1, d2)
# [1] TRUE

d1您是否尝试了
jan17dat$策略您可以使用
dput(jan17dat)
打印数据。然后有人可以重复你的问题。谢谢。按照你的建议去做,效果很好。你知道为什么这比另一个有效吗?你试过
jan17dat$策略吗?你可以使用
dput(jan17dat)
来打印数据。然后有人可以重复你的问题。谢谢。按照你的建议去做,效果很好。你知道为什么这对另一个有效吗?
d1 <- mtcars[, 1:3]
str(d1)
# 'data.frame': 32 obs. of  3 variables:
# $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
# $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
# $ disp: num  160 160 108 258 360 ...

d1[, "cyl"] <- as.factor(d1[, "cyl"])
str(d1)
# 'data.frame': 32 obs. of  3 variables:
# $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
# $ cyl : Factor w/ 3 levels "4","6","8": 2 2 1 2 3 2 3 1 1 2 ...
# $ disp: num  160 160 108 258 360 ...

d2 <- mtcars[, 1:3]
str(d2)
# 'data.frame': 32 obs. of  3 variables:
# $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
# $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
# $ disp: num  160 160 108 258 360 ...

d2$cyl <- as.factor(d2$cyl)
str(d2)
# 'data.frame': 32 obs. of  3 variables:
# $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
# $ cyl : Factor w/ 3 levels "4","6","8": 2 2 1 2 3 2 3 1 1 2 ...
# $ disp: num  160 160 108 258 360 ...

identical(d1, d2)
# [1] TRUE