R语言学习-----数据的载入

上集回顾

  上节学习了frame数据框架和list函数生成内容十分自由的列表。其中后者的使用非常频繁。

数据的载入

Excel中的数据载入
  第一种方法:使用专门的程序包来访问Excel中选定的行和列:RODBC。

  第二种方法(简单、推荐使用):

  1. 将Excel中的数据准备好(将数据排列好,删除冗余或者无意义产生的值)
  2. 将其提取到制表符分隔的ascii文件中(另存为制表符分隔的文本文件)
  3. 关闭Excel(防止文件被占用)
  4. 使用read.table函数将数据载入到R中(导入文件多的话可先用setwd来设置工作目录)

在这里插入图片描述
  注意输入文件目录时要有俩"\"
  另外也可以使用scan函数来载入数据,不同之处在于:scan函数把数据存储在矩阵中,而read.table把数据存储在数据框。

  注意:使用别的文本编辑器和表格可能有不同,有时候表头和列并没有在视觉上对齐!看起来就好像缺失一些列似的。本题目也产生了这样的问题:源excel文件如下:

在这里插入图片描述

  进行简单处理,去除图标和"Graph"字段名,删除前两列信息后另存为制表符分隔的文本文档,如下:

在这里插入图片描述

  可以看到,命名第一行有6个字段名,下面的数据却只有5列。我反复尝试并查资料,也没有找到解决方法。最终,我把这个tet文件又拉进excel才发现产生的表格没问题啊,该有的数据还是有,一度怀疑文本文档查看器把我的数据隐藏了起来。

在这里插入图片描述

  然后,才突然发现上图选中的框那里,第一行前两个单词是一个字段!!中间竟然是空格?!回过头来看了RStudio中的错误信息也是这样:没有6个元素?哪来的6个,只有5列,看来R识别到第一个字段中的空格,然后当成了两个不同字段。

在这里插入图片描述

  删掉这个空格,完美载入:

在这里插入图片描述

  使用scan函数载入数据的时候注意:scan函数没有Header参数,所以载入时会不识别字符串,而希望输入的是默认的实数,所以要设置“what = ‘c’”参数来使得可以输入字符:

在这里插入图片描述

  验证载入的数据的存储方式:

在这里插入图片描述

习题7:使用流行病学数据练习read.table函数或scan函数的应用
在这里插入图片描述

从其他统计程序包中访问数据 library(foreign)
  最好的工作方法还是直接面对原始数据。可以把R中生成的数据信息提取到一些统计程序包中,具体参考write.foreign的参考文件。

访问数据库
  使用特殊的程序包可以和Oracle和MySQL等数据库实现对接。这个实现起来需要一些技术和理解,这里不过多讲述。基本的数据导入方法已经掌握,目前没必要钻进这里耽误很多的时间,等后续需要的时候再学也不迟,且更快。


学习感悟:R语言真是一个专门搞数据处理的程序,一直都围绕着数据做文章。简单翻阅了后面的章节,也是对数据进行访问和处理。总之,学到这里算是对R有了一定的认识:对各种输入的数据进行操作,然后可视化出图形。真的很有效率,后面简单学过数据的处理和浏览一些函数的大概使用之后,就开始学习ggplot2包的使用,这才是重头戏!

### 回答1: 可以使用 pandas 的 read_csv() 函数来读取一行按制表符分隔的字符串。需要将 delimiter 参数设置为 '\t'。 例如: ``` import pandas as pd data = 'col1\tcol2\tcol3\nval1\tval2\tval3' df = pd.read_csv(StringIO(data), delimiter='\t') ``` 这样就可以将字符串读入 pandas 的 DataFrame 中了。 ### 回答2: 可以使用pandas库中的read_csv函数以及参数sep来读取按制表符分隔的字符串。 首先,需要安装pandas库,使用命令pip install pandas进行安装。 然后,导入pandas库,使用import pandas as pd进行导入。 接下来,可以使用read_csv函数读取文件。首先,创建一个文件,将按制表符分隔的字符串按行保存在该文件中,例如保存为data.txt文件。假设data.txt文件内容如下: name age gender John 25 M Lily 30 F 使用read_csv函数读取该文件,代码如下: df = pd.read_csv('data.txt', sep='\t') 其中,'data.txt'为要读取的文件名,sep='\t'指定了分隔符为制表符。 读取后的数据将保存在DataFrame对象df中。可以通过打印df来查看读取到的数据。例如,使用print(df)可以打印出以下内容: name age gender 0 John 25 M 1 Lily 30 F 这样,我们通过pandas读取了一行按制表符分隔的字符串,并将其保存到了DataFrame中。 ### 回答3: pandas库中的read_csv函数可以用来读取按制表符分隔的字符串。我们可以使用参数sep="\t"来指定分隔符为制表符。 首先,需要导入pandas库: ``` python import pandas as pd ``` 然后,使用read_csv函数读取数据: ``` python df = pd.read_csv('data.txt', sep='\t', header=None) ``` 在这个例子中,我们假设我们想要读取的数据存储在名为data.txt的文件中,并且每行都是由制表符分隔的。此外,我们将header参数设置为None,表示文件中没有列名。 读取后的数据将存储在一个名为df的DataFrame对象中。我们可以使用df的iloc方法来访问特定的行: ``` python row = df.iloc[0] ``` 上述代码中的[0]表示我们要访问的行的索引。在这里,我们选择了第一行作为示例。您可以根据实际情况进行调整。最后,row将是一个Series对象,包含所选行的数据。 至此,我们就完成了使用pandas读取一行按制表符分隔的字符串的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值