我目前正在学习统计学课程,他们要求我们安装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读取的字符串成为因子。