是否可以直接将 CSV 列读取为分类数据?

机器算法验证 r 分类数据 数据转换
2022-03-25 04:04:05

我需要使用 R 分析来自 CSV 格式的医学调查(包含 100 多个编码列)的数据。我将使用拨浪鼓进行一些初步分析,但在幕后它仍然是 R。

如果我read.csv()文件,带有数字代码的列将被视为数字数据。我知道我可以使用factor()从它们创建分类列,但是为 100 多个列执行此操作很痛苦。

我希望有更好的方法来告诉 R 直接将列作为因子导入。或者至少在之后将它们转换到位。

谢谢!

2个回答

您可以使用colClasses参数来指定数据列的类。例如:

data <- read.csv('foo.csv', colClasses=c('numeric', 'factor', 'factor'))

将数字分配给第一列,将因子分配给第二列和第三列。由于您有这么多列,因此捷径可能是:

data <- read.csv('foo.csv', colClasses=c('numeric', rep('factor', 37), 'character'))

或一些这样的变化(即,将数字分配给第一列,将因子分配给接下来的 37 列,然后将字符分配给最后一列)。

或者在您读取数据后执行此操作

dat <- read.csv("kdfjdkf")
apply(dat, 2, factor)

虽然这种类型的 Q 可能更适合Stack Overflow

编辑:见下文。