搜索
人大经济论坛 附件下载

附件下载

所在主题:
文件名:  character or Factor.rar
资料下载链接地址: https://bbs.pinggu.org/a-2226490.html
本附件包括:
  • character or Factor.R
附件大小:
933 Bytes   举报本内容
作为一个半菜鸟,我深刻体会到刚开始接触R的时候经常会遇到一些让自己措手不及的小问题,字符串数据的“造反”便是其一
于是,决定写这篇帖子和各位新手们分享。共同进步,少走弯路。
当然,我自己也收集了一些其他的小问题的处理方法,以后有机会再写。
  1. ###### R语言新手解惑之:为什么我的字符串造反了?#####
  2. #### 先生成一个字符串向量 ####
  3. rep<-paste("rep",1:100,sep="")#生成字符串rep1,...,rep100
  4. rep<-sample(rep,100,replace = FALSE)#随机调整顺序
  5. rep[1:6]
  6. other<-round(runif(100,6,10))#生成均匀分布随机数并四舍五入取整
  7. other[1:6]
  8. is(rep)#查看数据类型,是"character" 、"vector"
  9. is(other)##查看数据类型,是"numeric" 、"vector"
  10. #### 接下来将上述两列数据合并成数据框,并查看stringAsFactor参数带来的影响 ####

  11. #### 1:data.frame(rep,other,stringAsFactor=TRUE) ####
  12. #stringASFactor=TRUE 为默认设置 #

  13. data<-data.frame(rep,other,stringsAsFactors = TRUE)
  14. head(data)
  15. class(data$rep)#显然此时data$rep已经转换成因子了,而不是字符串了

  16. data1<-data.frame(rep,other)#等价于data.frame(rep,other,stringsAsFactors = TRUE)
  17. head(data1)
  18. class(data1$rep)#显然此时data1$rep已经转换成因子了,而不是字符串了

  19. #### 2:data.frame(rep,other,stringAsFactor=FALSE) ####
  20. dataF<-data.frame(rep,other,stringsAsFactors = FALSE)
  21. head(dataF)
  22. class(dataF$rep)#此时dataF$rep是字符串,正是我们想要保留的数据类型

  23. #### 3:R中内置的一些数据读取的函数都设置有stringASFactor=TRUE 这个默认参数 ####
  24. ?read.table
  25. ?read.csv
  26. ?read.delim
  27. ?data.frame
  28. #### 小结:因此我们在利用上述函数(上面展示的仅仅是部分)输入数据时,
  29. ####要留意自己是否要保留字符串向量的格式,还是要转换成因子去处理,
  30. #### 这些函数默认将字符串处理成因子
复制代码
  1. > rep<-paste("rep",1:100,sep="")#生成字符串rep1,...,rep100
  2. > rep<-sample(rep,100,replace = FALSE)#随机调整顺序
  3. > rep[1:6]
  4. [1] "rep22" "rep30" "rep17" "rep96" "rep55" "rep84"
  5. > other<-round(runif(100,6,10))#生成均匀分布随机数并四舍五入取整
  6. > other[1:6]
  7. [1]77 10 1067
  8. > is(rep)#查看数据类型,是"character" 、"vector"
  9. [1] "character" "vector" "data.frameRowLabels"
  10. [4] "SuperClassMethod"
  11. > is(other)##查看数据类型,是"numeric" 、"vector"
  12. [1] "numeric" "vector"
  13. > data<-data.frame(rep,other,stringsAsFactors = TRUE)
  14. > head(data)
  15. rep other
  16. 1 rep22 7
  17. 2 rep30 7
  18. 3 rep17 10
  19. 4 rep96 10
  20. 5 rep55 6
  21. 6 rep84 7
  22. > class(data$rep)#显然此时data$rep已经转换成因子了,而不是字符串了
  23. [1] "factor"
  24. > data1<-data.frame(rep,other)#等价于data.frame(rep,other,stringsAsFactors = TRUE)
  25. > class(data1$rep)#显然此时data1$rep已经转换成因子了,而不是字符串了
  26. [1] "factor"
  27. > dataF<-data.frame(rep,other,stringsAsFactors = FALSE)
  28. > head(dataF)
  29. rep other
  30. 1 rep22 7
  31. 2 rep30 7
  32. 3 rep17 10
  33. 4 rep96 10
  34. 5 rep55 6
  35. 6 rep84 7
  36. > class(dataF$rep)#此时dataF$rep是字符串,正是我们想要保留的数据类型
  37. [1] "character"
  38. > ?read.table
  39. > ?read.csv
  40. > ?read.delim
  41. > ?data.frame
复制代码





    熟悉论坛请点击新手指南
下载说明
1、论坛支持迅雷和网际快车等p2p多线程软件下载,请在上面选择下载通道单击右健下载即可。
2、论坛会定期自动批量更新下载地址,所以请不要浪费时间盗链论坛资源,盗链地址会很快失效。
3、本站为非盈利性质的学术交流网站,鼓励和保护原创作品,拒绝未经版权人许可的上传行为。本站如接到版权人发出的合格侵权通知,将积极的采取必要措施;同时,本站也将在技术手段和能力范围内,履行版权保护的注意义务。
(如有侵权,欢迎举报)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

GMT+8, 2025-12-31 00:23