《The Art of R Programming》与《R in Action》是最获推荐的2本R语言入门书籍。
《The Art of R Programming》指导初学者如何用R语言进行编程,根据每章的主题介绍常用的函数与技巧。因此我在该系列的文章中以每章的案例为基础,说明案例代码实现的功能,将涉及的知识点以备注的形式展示,方便理解和使用;并在文章末尾附上该章其余知识点。
10.2.4读取PUMS普查数据
![7f7d3e763e553b2dee096137d0526f88.png](https://i-blog.csdnimg.cn/blog_migrate/7b8fe4495c79c5ed71319edc31f0081e.jpeg)
![a9e1d553c43ec27ed7ca34c67379e013.png](https://i-blog.csdnimg.cn/blog_migrate/14c95220db8b9c455d3f54aadf351bfd.jpeg)
10.2.8多个文件内容的和
![36883a7d6600aae30fc79b8b7c79eeb9.png](https://i-blog.csdnimg.cn/blog_migrate/12c77d7a96de1be1359aac1a50e896d2.jpeg)
知识点
- scan()从文件中读取或者用键盘输入一个向量。scan()函数有一个可选参数what用来设定变量的模式,默认为double模式。scan()为一次读取整个文件提供了一种快速的方法。scan()函数从键盘读取数据,只需要把文件名设定为一个空字符串,然后用键盘录入数据。最典型的用法是把scan()的返回值赋给一个变量。
- 命令行在每行行首提示的数字是下一个输入项的索引,键入一个空行表示结束输入。
- 从键盘输入单行数据,用 readLines()函数会非常方便。调用 readLines()时可以指定一个提示语字符串作为参数。writeLines()函数与readLines()相对。如果你用的是连接,则必须设定参数"w"来指明是要写文件而非读取需要主动关闭文件。
- 打印变量或表达式的值可用print()函数。
- 从文件中读取矩阵可以用read.table()先读取为数据框,再用 as.matrix()将其转化为矩阵。
- 连接一般通过调用函数file()、url()或其他R函数创建。可以用 close()函数来关闭连接。关闭连接可以让系统知道你已经完整读取了所需文件内容,现在应该正式写入到磁盘。
- 如果我们想要“倒带”,从文件开始处重新读取,可以使用seek()。seek()中的参数where=0表示我们希望把起始指针指向文件的最开头,即直接从开始读起。
- 某些函数,如read.table()和scan(),可以用网站地址(URL)作为参数。
- write.table()函数把数据框写入文件。如果想把矩阵写入文件,只需要声明不要列名和行名即可。
- cat()函数同样可以用来写入文件,这个文件会在每一次操作之后自动保存。
- file.exists()返回一个布尔向量,表示作为第一个参数的字符串向量中给定的每个文件名是否存在。
- getwd()和setwd()用于确定或改变当前工作目录。
- 如果你不是系统的特权用户,没有足够的操作权限,但希望用R编写一些服务端程序,则必须指定一个大于1024的端口号。
- A在与B连接期间发送给B的所有字节被看作是一个整体,称为“长消息”。将长消息分割回若干行文本需要一些额外的工作,对此R提供了一系列的函数来达到这个目的:
- readLines()和writeLines():这两个函数允许你在写程序时把 TCPIP的消息传输当作是一行一行传递的,尽管这并不是真实的情况。如果你要传输的数据本质上就是按行分隔的,那么这两个函数将是非常方便的。
- serialize()和unserialize():可以利用这两个函数传输R对象,比如矩阵或者某个统计函数的复杂输出结果。传输对象将在发送端转换成字符串形式,然后在接收端转换回原来的对象形式。
- readBin()和writeBin():这两个函数用于传输二进制的数据。
- R中还有另外两个socket函数:socketConnection()函数可以通过socket来创建一个R连接。你可以使用参数port来设定端口号,然后将 server参数设为TRUE或FALSE来说明需要创建的是服务器还是客户端。如果创建的是客户端,还必须用host数来设定服务器的IP地址。socketSelect()函数在服务器与多个客户端相连接时非常有用。其主要的参数socklist是一系列连接的列表,而返回值是这些连接的一个子列表,其中的元素所表示的连接提供了服务器可以读取的数据。
转载请标明出处