为什么我的R函数显示的是长度类模式而不是频率

  • 本文关键字:频率 模式 显示 函数 r
  • 更新时间 :
  • 英文 :


我目前正在学习统计学课程,他们要求我们安装R和R环境以在课程中使用。这是我第一次使用R。我们的第一个任务是测试一些csv文件使用以下命令:

ex.1 <- read.csv('ex1.csv')
summary(ex.1)
colnames(ex.1)

结果应该是这样的:

id                          sex                      height     
Min.   :1538611                 FEMALE:54               Min.   :117.0  
1st Qu.:3339583                 MALE  :46               1st Qu.:158.0  
Median :5105620                                         Median :171.0  
Mean   :5412367                                         Mean   :170.1  
3rd Qu.:7622236                                         3rd Qu.:180.2  
Max.   :9878130                                         Max.   :208.0  

然而,我得到了这个(我包括了我的整个代码(:

> getwd()
[1] "C:/Users/hp/Documents"
> setwd("C:/Users/hp/Documents/R")
> dir()
[1] "ex1.csv"     "ex2.csv"     "flowers.csv" "pop1.csv"    "pop2.csv"   
[6] "pop3.csv"    "win-library"
> ex.1 <- read.csv('ex1.csv')
> summary(ex.1)
id              sex                height     
Min.   :1538611   Length:100         Min.   :117.0  
1st Qu.:3339583   Class :character   1st Qu.:158.0  
Median :5105620   Mode  :character   Median :171.0  
Mean   :5412367                      Mean   :170.1  
3rd Qu.:7622236                      3rd Qu.:180.2  
Max.   :9878130                      Max.   :208.0  
> colnames(ex.1)
[1] "id"     "sex"    "height"

问题出在哪里?

执行此ex.1$sex<- as.factor(ex.1$sex)。然后尝试摘要命令

问题是,当你把它读成csv时,它会把性别列读成字符。你必须把它作为一个因素。

发生的情况是,R将性列作为文本字符串读取,而不承认所有带有";男性";在它们中应该被分组;女性;细胞。因此,它报告单元格中有文本,因为你想要一种特殊形式的文本,这是一个因素。as.factor((强制R识别来自特定组的相同文本字符串。

如何阻止它下次这样做。一种方法是将参数"stringsAsFactors=T"添加到您的";read.csv";命令例如

read.csv('ex1.csv', stringAsFactors = T) 

这迫使R读取的字符串成为因子。

最新更新