r - Summary 和 str 没有给出数据框的因子和级别信息
问题描述
我是 R(4.0.3 版)编程的新手。每当我使用函数str()
并summary()
获取具有数字和字符的数据框的信息时,它不会在字符的输出中显示“因素”和“级别”信息。它只显示长度、类和模式信息。如何在输出中获取因子和水平信息?
解决方案
我相信你关心的变量仍然是"character"
格式。您可以使用as.factor
将其转换为"factor"
格式。例子:
dat1 <- data.frame(num=1:10,
chr=letters[1:10])
str(dat1)
# 'data.frame': 10 obs. of 2 variables:
# $ num: int 1 2 3 4 5 6 7 8 9 10
# $ chr: chr "a" "b" "c" "d" ...
summary(dat1)
# num chr
# Min. : 1.00 Length:10
# 1st Qu.: 3.25 Class :character
# Median : 5.50 Mode :character
# Mean : 5.50
# 3rd Qu.: 7.75
# Max. :10.00
dat1$fac <- as.factor(dat1$chr)
str(dat1)
# 'data.frame': 10 obs. of 3 variables:
# $ num: int 1 2 3 4 5 6 7 8 9 10
# $ chr: chr "a" "b" "c" "d" ...
# $ fac: Factor w/ 10 levels "a","b","c","d",..: 1 2 3 4 5 6 7 8 9 10
summary(dat1)
# num chr fac
# Min. : 1.00 Length:10 a :1
# 1st Qu.: 3.25 Class :character b :1
# Median : 5.50 Mode :character c :1
# Mean : 5.50 d :1
# 3rd Qu.: 7.75 e :1
# Max. :10.00 f :1
# (Other):4
在 R 4.0.x 中,data.frame()
其他函数stringsAsFactors=FALSE
默认使用,而TRUE
之前是这样。可能您的同事使用的是早期版本,因此您的结果不同?使用stringsAsFactors=TRUE
产生因子。然而,新的变体相当受欢迎。
dat2 <- data.frame(num=1:10,
chr=letters[1:10],
stringsAsFactors=TRUE)
str(dat2)
# 'data.frame': 10 obs. of 2 variables:
# $ num: int 1 2 3 4 5 6 7 8 9 10
# $ chr: Factor w/ 10 levels "a","b","c","d",..: 1 2 3 4 5 6 7 8 9 10
编辑
read.csv
还有一个stringsAsFactors=
参数,我们可以设置为TRUE
. 例子:
dat3 <- data.frame(num=1:10, chr=letters[1:10])
class(dat3$chr)
# [1] "character"
write.csv(dat1, "dat1.csv") ## store a .csv
dat4 <- read.csv("dat1.csv", stringsAsFactors=TRUE) ## read in
class(dat4$chr)
# [1] "factor"
推荐阅读
- typescript - 阿达尔打字稿文件
- excel - SUM() 不适用于 Google 表格中的 Google 脚本函数单元格值
- java - 将在 tomcat 6 java 1.6 中运行的 web 项目迁移到 tomcat 8 java 1.8
- c# - Unity Firebase SDK 中的保持同步
- android - 颤动如何在打开其他小部件时保持小部件活动
- mysql - 我将如何显示我更新的四个变量的值
- go - 有没有办法广播到redis中的每个频道?
- amazon-web-services - ECS - 任务无法启动,但容器看起来不错。在日志中不显示错误
- angular - 我可以在时刻 js 中得到今天的日期加上一个月吗?
- php - 有关详细信息,请参阅异常日志。无法将错误消息写入日志。请使用开发者模式查看消息