gpt4 book ai didi

r - Summary 和 str 不提供数据框的因素和级别信息

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

我是 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"

关于r - Summary 和 str 不提供数据框的因素和级别信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65388096/

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