- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
R语言_第六章
* 1、因子与水平 因子可以反应向量中不同值的记录,成为level x-c(5,12,13,12) xf-factor(x) xf [1] 5 12 13 12 Levels: 5 12 13 注意,factor()使得数据被重新编码为水平 class(x) [1] numeric class(xf) [1] factor 2、tapply(x,f,g) X为向量,f为因子或因子列表,g为函数;tapply()将x分组并使得每组对应一个因子水平,得到x的子向量,然后对这些子向量应用函数g()。 ages-c(25,26,55,37,21,42) affils-c(R,D,D,R,U,D) tapply(ages,affils,mean) D R U 41 31 21 f作为因子列表时情况 d1-data.frame(gender=c(M,M,F,M,F,F),age=c(47,59,21,32,33,24),income=c(55000,88000,32450,76500,123000,45650),height=c(176,180,158,168,161,170)) d1$over25-ifelse(d1$age25,1,0) d1$hover165-ifelse(d1$height165,1,0) tapply(d1$income,list(d1$gender,d1$over25,d1$hover165),mean) 输出结果为: , , 0 0 1 F 77725 NA M NA NA , , 1 0 1 F 45650 NA M 88000 65750 3、split(x,f)函数 这里x和f的意义与在tapply()中类似。Split()的作用是将向量分割为组 split(d1$income,list(d1$gender,d1$over25)) $F.0 [1] 32450 123000 45650 $M.0 [1] 88000 $F.1 numeric(0) $M.1 [1] 55000 76500 案例: findwords-function(x){ txt-scan(x,“”) #读取文件并以列表txt形式返回 words-split(1:length(txt),txt) return(words) } findwords(tf.txt) Read 10 items $a [1] 5 8 $be [1] 4 $great [1] 6 …….. 4、by(x,f,g)函数 by()的调用方式与tapply()相似,第一个参数指定数据,第二个为分组因子,第三个为函数;但by()的对象不仅是向量。 aba-read.table(d:\\R相关东西\\abalone.txt,header=T) by(aba,aba$Gender,function(m)lm(m[,2],m[,3])) Error in formula.default(object, env = baseenv()) : invalid formula by(aba,aba$Gender,function(m) lm(m[,2],m[,3])) Error in formula.default(object, env = baseenv()) : invalid formula by(aba,aba$Gender,function(m) lm(m[,2]~m[,3])) aba$Gender: F Call: lm(formula = m[, 2] ~ m[, 3]) Coefficients: (Intercept) m[, 3] 0.08127 1.08767 --------------------------------------------------------- aba$Gender: I …… 5、表的操作:列联函数table() 作用主要是统计频数 txt-read.table(abalone.txt,header=T) ct-table(txt[,-2:-8]) ct rings Gender 7 8 9 10 11 12 13 14 15 16 18 19 20 F 0 1 2 4 2 1 1 1 1 2 0 2 1 I 2 1 0 1 0 0 0 0 0 0 0 0 0 M 2 1 2 3 3 2 0 0 2 0 1 0 0 另外几个常用几个函
文档评论(0)