gpt4 book ai didi

r - 如何将数据框的某些列转换为因子?

转载 作者:行者123 更新时间:2023-12-03 07:25:04 26 4
gpt4 key购买 nike

Possible Duplicate:
identifying or coding unique factors using R

我在使用 R 时遇到了一些问题。

我有一个与以下类似的数据集,但更长。

A B Pulse
1 2 23
2 2 24
2 2 12
2 3 25
1 1 65
1 3 45

基本上,前两列已编码。 A有 1, 2 代表 2 个不同的权重。 B有 1, 2, 3 代表 3 个不同的时间。

由于它们是编码数值,R 会将它们视为数值变量。我需要使用因子函数将这些变量转换为因子。

帮忙?

最佳答案

这是一个例子:

#Create a data frame
> d<- data.frame(a=1:3, b=2:4)
> d
a b
1 1 2
2 2 3
3 3 4

#currently, there are no levels in the `a` column, since it's numeric as you point out.
> levels(d$a)
NULL

#Convert that column to a factor
> d$a <- factor(d$a)
> d
a b
1 1 2
2 2 3
3 3 4

#Now it has levels.
> levels(d$a)
[1] "1" "2" "3"

您也可以在读取数据时处理此问题。请参阅例如中的 colClassesstringsAsFactors 参数readCSV()

请注意,从计算角度来说,分解此类列不会对您有太大帮助,而且实际上可能会减慢您的程序速度(尽管可以忽略不计)。使用因子将要求所有值都映射到幕后的 ID,因此 data.frame 的任何打印都需要在这些级别上进行查找 - 这是一个额外的步骤,需要时间。

当存储您不想重复存储但更愿意通过其 ID 引用的字符串时,因子非常有用。考虑在此类列中存储更友好的名称,以充分受益于因素。

关于r - 如何将数据框的某些列转换为因子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13613913/

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