Data Analysis Tools and 2018.03.20 Practice(Using R) R编程结构 北大软件与微电荐院 Huiping Sun(孙惠平) School of Software and Microelectronics,Peking University sunhp@ss.pku.edu.cn
Huiping Sun(ਃణଘ) sunhp@ss.pku.edu.cn R编程结构 Data Analysis Tools and Practice(Using R) 2018.03.20
课堂测试时间
᧞झၥᦶᳵ
R Language 课堂测试03 30分钟 ·1、按照要求写出相应的命令:(I)创建向量x,其元素为、2、3,创建向量y其元素 为”ab”c”,定义一个由x,y组成的数据框df,(2).将数据框df与一个有且仅有一个数值 列z,数值列元素为3、2、I的数据框进行列连接;(3).按如下方式:data..frame(x=I0, y=“d”,c=IO)定义一个数据框df2,然后将其与df进行连接。 ·2、按照题目要求写出命令:(I).创建矩阵amat,矩阵元素为1到I2之间的整数,创建矩 阵bmat,矩阵元素为1到25之间的间隔为2的整数;(2).计算amat和bmat的内积和外 积;(3).计算amat的转置、逆矩阵和特征值、特征向量。 ·3、按要求写出命令:(I).创建字符串str,其值为'm Shouting,将str所有的字母大写;(2) 截取str的第3个到最后一个字符;(3).以空格为分割符,分割str为字符串向量strs4、 使用pastel函数将strs与向量c(I,2)连接,指定参数分割符为””。 ,4、求出当前的日期与1970-1-1之间相差的秒数、分钟数、小时数、天数和周数。 ·5、写出产生50个学号(DA-2017-01到DA-20I7-50)的语句。 6、test<-c(20,9,6,NA,99,88,NA,46),写出完成如下功能的语句,将test按照行优 先行程一个4列的矩阵Mt,检查哪些位置是NA,求每一列和每一行的总和,并将行 列的总和增加到Mt中
• 1̵ೲᆙᥝڊٟፘଫጱեғ(1). ڠୌݻᰁxٌ҅زᔰԅ1̵2̵3҅ڠୌݻᰁy,ٌزᔰ ԅ”a””b”c”, ਧԎӞӻኧx҅yᕟ౮ጱහഝdf; (2). ਖ਼හഝdfӨӞӻํӬՐํӞӻහ ڜz҅හزڜᔰԅ3̵2̵1ጱහഝᬰᤈڜᬳള; (3). ೲইӥොୗғdata.frame(x = 10, y = “d”,c=10))ਧԎӞӻහഝdf2,ᆐݸਖ਼ٌӨdfᬰᤈᬳള̶ • 2̵ೲᆙ᷌ፓᥝڊٟե: (1). ڠୌᎥᴣa_mat,Ꭵᴣزᔰԅ1ک12ԏᳵጱෆහ҅ڠୌᎥ ᴣb_mat,Ꭵᴣزᔰԅ1ک25ԏᳵጱᳵᵍԅ2ጱෆහ; (2).ᦇᓒa_matb_matጱٖᑌक़ ᑌ; (3).ᦇᓒa_matጱᗝ̵ᭋᎥᴣᇙ̵ᇙݻᰁ̶ • 3̵ೲᥝڊٟե: (1). ڠୌਁᒧԀstr,ٌԅI’m Shouting҅ਖ਼strಅํጱਁྮय़ٟ) ;2). ౼ݐstrጱᒫ3ӻک๋ݸӞӻਁᒧ; (3). զᑮ໒ԅۆړᒧ҅ۆړstrԅਁᒧԀݻᰁstrs 4̵ ֵአpasteڍහਖ਼strsӨݻᰁc(1,2)ᬳള҅ਧ݇හۆړᒧԅ”-” ̶ • 4̵ڊ୮ڹጱ෭๗Ө1970-1-1ԏᳵፘ૧ጱᑁහ̵ړᰦහ̵ੜහ̵ॠහޮහ̶ • 5̵ڊٟԾኞ50ӻݩҁDA-2017-01کDA-2017-50҂ጱݙ̶ • 6̵test <- c(20, 9, 6, NA, 99, 88, NA, 46)҅ڊٟਠ౮ইӥۑᚆጱݙ҅ਖ਼testೲᆙᤈս ضᤈᑕӞӻ4ڜጱᎥᴣMt҅༄ັߺԶ֖ᗝฎNA҅ྯӞڜྯӞᤈጱ҅ଚਖ਼ᤈ ̶MtӾکےीጱڜ R Language 课堂测试03 30ړᰦ
R Language 上次课程内容回顾 矩阵运算:t);det);array(0;crossprod0;tcrossprod);diag仍solve(O; eigen(); ● 缺失值:NA;is.naO;na.rm=TRUE;na.omit0; 类型函数:is.numeric0;is.integer0(;is.logical0);is.character0(;as.Xxxx0 字符处理:nchar0(;substr();strsplit()toupper());tolower()仍paste(O: 日期和时间:Sys.Date();date0);difftime(0;format0);as.Date():%d, %a,%A,%m,%b,%B,%y%Y; 统计函数:mean)median();sd);var()max)min);range(: sum();quantile();diff();scale() 数据集合合并:rbind0;cbind()
• Ꭵᴣᬩᓒ: t(); det(); array(); crossprod(); tcrossprod(); diag(); solve(); eigen(); • ᗌ०: NA; is.na(); na.rm = TRUE; na.omit(); • ᔄڍࣳහ: is.numeric(); is.integer(); is.logical(); is.character(); as.xxxx() • ਁᒧ॒ቘғnchar(); substr(); strsplit(); toupper(); tolower(); paste(); • ෭๗ᳵғSys.Date(); date(); difftime(); format(); as.Date(); %d, %a,%A, %m, %b, %B, %y,%Y; • ᕹᦇڍහғmean(); median(); sd(); var(); max(); min(); range(); sum(); quantile(); diff(); scale(); • හഝᵞݳݳଚ: rbind(); cbind(); R Language 上次课程内容回顾
R Language 本次课程内容 ·流程控制 ·循环控制 ·输入输出 ·自写函数
ګᑕഴ• ၞ ګሾഴ• ڊᬌفᬌ• • ᛔڍٟහ R Language 本次课程内容
R Language 流程控制 if(cond)statement if-else if(cond)statement1 else statement2 ifelse if(cond,statement1,statement2) if(FALSE) 一个表达式,不能是NA X message("This won't execute...") }else +{ message("and you'll get an error before you reach this." +} and you'll get an error before you reach this. ifelse(rbinom(10,1,0.5),"Head","Tail") [1]"Tail""Head""Head""Head""Tail""Head""Head""Tail" [9]"Tail""Tail
if-else if(cond) statement if(cond) statement1 else statement2 ifelse if(cond, statement1, statement2) Ӟӻᤒᬡୗ҅ӧᚆฎNA R Language 流程控制
R Language 流程控制 switch switch(expr,... > feelings for (i in feelings) print( switch(i, happy ="I am glad you are happy", + afraid "There is nothing to fear", sad "Cheer up", angry ="Calm down now" ) +) [1]"Cheer up" [1]"There is nothing to fear
switch switch(expr, …) R Language 流程控制
R Language 循环控制 repeat repeat(statement) for for(var in seq)statement while while(cond)statement > repeat + Happy Groundhog Day! + message("Happy Groundhog Day!") action Make an ice statue + action <-sample( Happy Groundhog Day! c( action Rob a bank "Learn French", Happy Groundhog Day! "Make an ice statue", action Win heart of Andie McDowell "Rob a bank", "Win heart of Andie McDowell" + 1 break + + message("action ="action) if(action =="Win heart of Andie McDowell")break next +
repeat repeat(statement) for for(var in seq) statement while while(cond) statement break next R Language 循环控制
R Language 循环控制 >1<-10 for(i in 1:10 print("Hello") while(i 0) "Hello" +{ [ "Hello" print("Hello"); "Hello" + i<-i-13} "Hello" [1]"Hello" "Hello" [1] "Hello" [1] "Hello" [1] "Hello" "Hello" [1] "Hello" [1] "Hello" [1] "Hello" [1] "Hello" [1] "Hello" [1] "Hello" [1] "Hello" [1] "Hello" [1] "Hello" [1] "Hello
R Language 循环控制
R Language 数据输入输出 统计软件 SAS SPSS Stata 键盘 ASCII Excel 文本文件 XML R netCFD 其他 Web抓取数据 HDF5 SQL MySQL Oracle Access 数据库管理系统 图2-2可供R导入的数据源
R Language 数据输入输出