【发布时间】:2016-02-21 00:24:14
【问题描述】:
我有L:
Var1 Freq
2 1103 6
6 1107 10
10 1112 7
21 1125 6
24 1129 10
31 1137 5
和pct:
head(pct)
[1] 0.806 0.706 0.781 0.800 0.655 0.844
pct 最初是数字,而不是一个因素:
str(pct)
num [1:68] 0.806 0.706 0.781 0.8 0.655 0.844
但是,一旦我将L 和pct 结合在一起
pct_by <- as.data.frame(cbind(as.vector(L$Var1), pct))
我看到这个新的数据框pct_by 包含pct 作为因子,如下所示:
str(pct_by
'data.frame': 68 obs. of 2 variables:
$ V1: Factor w/ 68 levels "1103","1107",..: 1 2 3 4 5 6 7 8 9 10 ...
$ pct: Factor w/ 41 levels "0.375","0.529",..: 34 19 29 33 10 37 27 9 12 11 ...
这是为什么?如何更改 pct_by$pct 使其原来是数字而不是因子?
【问题讨论】:
-
根本不要
cbind。这是人们似乎从旧教程或其他东西中养成的坏习惯。只需使用pct_by <- data.frame(L$Var1, pct)。问题是 cbind 会更喜欢返回一个矩阵,而矩阵只能保存一个 data.type。 -
@MrFlick 你的评论看起来像是对我的回答......