首页 > 代码库 > R语言的基本操作--读取和写入txt,sapply&lapply

R语言的基本操作--读取和写入txt,sapply&lapply

最近比较忙比较忙比较忙。。。真是忙///

作为菜鸟,不明白为什么这么容易忘记r的基本操作,感觉比C# JAVA c什么的都难,又来复习一遍

 1 ##数据操作的入门
 2 
 3 ##定义一个函数判断偶数
 4 func <- function(x)
 5 {
 6   if(x %% 2 == 0){
 7     ret <- even
 8   }else
 9   {
10     ret <- odd
11   }
12   return(ret)
13 }
14 
15 ##测试效果
16 func(35)
17 
18 ##sapply----下面的代码会报错,参数只能是一个数值
19 vec <- round(runif(4) * 100)
20 func(vec)
21 ##这样子的代码才是正确的
22 sapply(vec,func)
23 
24 ##另外一种方法
25 funcv <- Vectorize(func)
26 funcv(vec)
27 
28 ##还有一种实现方法 ifelse
29 funcif <- function(vecc)
30 {
31   ##这里的代码比较的机智
32   return(ifelse(vecc%%2,odd,even))
33 }
34 funcif(vec)
35 
36 ##另一个稍微有趣的试验
37 set.seed(123)
38 out <- data.frame(x2 = runif(4) * 10, x1 = c(a,b,c,d))
39 ##打印输出
40 print(out)
41 out <- format(out,digits = 3)
42 out
43 ##paste可以连接两个字符  配合cat一起输出
44 cat(paste(out$x1,out$x2,sep = =),sep = \n)
45 
46 
47 ##txt文件操作
48 ##创建txt
49 outfile <- file(output.txt)
50 ##cat写入
51 cat(1:100,sep = \t,file = outfile)
52 close(outfile)
53 #再写一行,否则最后一个数字和第一个数字会重合
54 cat(\t,sep =  ,file = output.txt,append = TRUE)
55 ##cat还可以对已有内容的文件加操作---至于这里为什么是这样不是直接使用output我也感到十分诧异
56 cat(101:200,sep = \n,file = output.txt,append = TRUE)
57 ##读取txt
58 input <- scan(file = output.txt)
59 input
60 
61 ##开始一个新的例子
62 ##读取路径
63 path <- .libPaths()[1]
64 ##改路径下的所有文件夹?
65 doc.names <- dir(path)
66 doc.names
67 ##改变路径
68 doc.path <- sapply(doc.names,function(names){
69   paste(path,names,DESCRIPTION,sep = /)
70 })
71 doc.path
72 ##生成最终文档
73 doc <- sapply(doc.path,function(doc) readLines(doc))
74 doc

 

R语言的基本操作--读取和写入txt,sapply&lapply