R将data.frame的所有列转换为字符类
示例
常见的任务是将a的所有列转换data.frame为字符类,以便于操作,例如在发送data.frames到RDBMS或合并data.frames包含输入数据之间的级别可能不同的因素的情况下。
最好的时机是在读取数据时-几乎所有创建数据帧的输入方法都有一个stringsAsFactors可以设置为的选项FALSE。
如果已经创建数据,则因子列可以转换为字符列,如下所示。
bob <- data.frame(jobs = c("scientist", "analyst"), pay = c(160000, 100000), age = c(30, 25)) str(bob)
'data.frame': 2 obs. of 3 variables: $ jobs: Factor w/ 2 levels "analyst","scientist": 2 1 $ pay : num 160000 100000 $ age : num 30 25
# Convert *all columns* to character bob[] <- lapply(bob, as.character) str(bob)
'data.frame': 2 obs. of 3 variables: $ jobs: chr "scientist" "analyst" $ pay : chr "160000" "1e+05" $ age : chr "30" "25"
# Convert only factor columns to character bob[] <- lapply(bob, function(x) { if is.factor(x) x <- as.character(x) return(x) })