【问题标题】:Setting the class of a variable automatically in R?在R中自动设置变量的类?
【发布时间】:2018-12-06 23:02:24
【问题描述】:

我使用个人 ID 编码为五位数字 20234 的大型数据集。我们称之为DF$id.var。这些数据分散在数十年的数百次调查中,所以我一直在争论(加载、合并、子集、过滤)数据。

我从不,永远(永远!)希望此变量为 class numeric,但每次我导入文件(.dta 或 .csv)时,R 默认都会这样做.

DF$id.var <-as.character(DF$id.var) 乱扔我的代码正在摧毁我的灵魂,必须有更好的方法。也许我的脚本或 Rmarkdown 文件开头的一行代码?

类似于: 嘿,R!...任何时候你看到任何称为 id.var 的东西,无论是数据框中的列还是向量,总是将其归类为 as.character

【问题讨论】:

    标签: r class character


    【解决方案1】:

    您可以使用readr 包中的read_delim() 系列函数来读取数据并包含参数col_types = cols(id.var = col_character()),例如:

    library(readr)
    
    DF <- read_csv("example.csv", col_types = cols(id.var = col_character()))
    

    【讨论】:

    • 类似地,任何base r“读”。函数有这个选项。例如,参见read.csv() 帮助文件中的colClasses 参数。在 base r 中执行上述操作:DF &lt;- read.csv("example.csv", colClasses = c(id.var = "character"))
    • 这对于 .csv 文件来说非常棒 - 不幸的是,我主要需要从 Stata 打开 .dta 文件,所以我使用 read_dta()。我似乎无法让它工作,但也许这更清楚,所以我会努力的。谢谢。
    • 你可以写一个函数来包裹read_dta()并转换变量。
    • 我会试试的。感谢您提出建设性的建议。
    猜你喜欢
    • 1970-01-01
    • 2013-01-09
    • 2015-05-17
    • 2021-09-27
    • 2011-07-23
    • 2011-09-30
    • 2023-03-09
    • 1970-01-01
    • 2013-12-22
    相关资源
    最近更新 更多