gpt4 book ai didi

r - 为什么使用 cbind 创建新数据框会自动将数字列转换为因子?

转载 作者:行者123 更新时间:2023-12-04 10:27:46 28 4
gpt4 key购买 nike

我有 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

然而,一旦我结合 Lpct和...一起
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.frame 时转换为因子。

关于r - 为什么使用 cbind 创建新数据框会自动将数字列转换为因子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35468660/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com