R语言医学数据分析实践-数据读写

【图书推荐】《R语言医学数据分析实践》-CSDN博客

《R语言医学数据分析实践 李丹 宋立桓 蔡伟祺 清华大学出版社9787302673484》【摘要 书评 试读】- 京东图书 (jd.com)

R语言编程_夏天又到了的博客-CSDN博客

R编程环境的搭建-CSDN博客

在分析公共卫生数据时,数据来源和数据格式多种多样,如文本数据、Excel数据、SPSS数据以及SAS数据等。在R语言中,数据的读取和写入是数据分析处理的重要环节。R语言提供了多种方法来读取和写入不同格式的数据,包括文本文件、Excel文件、SAS数据文件等。本节将介绍常用的数据读写方法。

2.3.1 读取文件

首先是读取文本文件。read.table()函数可用于将文本数据导入R,并将数据保存为一个数据框。例如代码h<-read.table(file='文件路径', header = FALSE, sep = "", skip = 0, nrows = -1)。其中:

  1. file:表示要读取的文本文件,路径中注意使用"\\"或"/"。
  2. sep:表示用什么分隔符分隔字段,默认以空格分隔。
  3. header:在读取数据时,决定是否将第一行数据作为变量的名称。
  4. skip:表示跳过前几行,从第几行开始读取数据。
  5. nrows:指定读取文件中的行数。

另一种常见的文本格式文件是CSV(逗号作为分隔符)文件。CSV格式是一种兼容性强的文件交换格式,在各类数据管理软件和统计软件中十分常见。read.csv()函数可用于读取CSV格式文件,该函数的用法与read. table()基本一致。为了更清晰地理解R语言数据的读取,下面来看一个示例。

假设有一个包含患者身高、体重和血压的文本文件clinical_data.txt,数据内容如下:

Patient_ID  Height  Weight  Blood_Pressure
1           170     70      120/80
2           165     65      130/85
3           180     80      140/90

通过以下代码读取该文本文件:

clinical_data <- read.table("clinical_data.txt", header = TRUE, sep = "", skip = 0, nrows = -1)

有一个包含患者年龄、性别和诊断的CSV文件clinical_data.csv,数据内容如下:

Patient_ID Age Gender Diagnosis
1 45 Male Hypertension
2 30 Female Diabetes
3 55 Male Hyperlipidemia

通过以下代码读取该CSV文件:

clinical_data <- read.table("clinical_data.csv", header = TRUE, sep = " ", skip = 0, nrows = -1)

文本文件和CSV文件的读取步骤及读取结果如图2-9所示。

图2-9

2.3.2 写入文件

在R语言中,写入文件通常使用write.table()或write.csv()等函数,具体取决于要保存的数据类型和文件格式。例如,代码"write.table(b, file = '文件路径', sep = ',', row.names = F,quote = F,append = T)"用于将数据写入文件,其函数主要参数的含义如下。

  1. sep = ',':表示用","作为字段分隔符。
  2. row.names = F:表示不添加行号。
  3. quote = F:表示不添加双引号。
  4. append = TRUE:表示将数据附加到文件尾,而不是覆盖文件。

为了更清晰地理解R语言数据的写入,参考以下示例:

clinical_data <- data.frame(
  Patient_ID = c(1, 2, 3),
  Age = c(45, 30, 55),
  Gender = c("Male", "Female", "Male"),
  Diagnosis = c("Hypertension", "Diabetes", "Hyperlipidemia")
)  #创建一个包含患者年龄、性别和诊断的数据框
write.csv(clinical_data, file = "clinical_data_output.csv", row.names = FALSE) #将数据框写入CSV文件

图2-10展示了创建的数据框的内容和将其写入CSV文件的过程。

图2-10

2.3.3 读写其他数据文件

R语言提供了很多功能包,用于读取其他格式的数据文件。例如,使用haven程序包中的read_spss()函数可以读取SPSS数据,read_sas()函数可以读取SAS数据,read_stata()函数可以读取Stata数据。使用这些函数可以将需要的数据导入R并转换为数据框格式。haven程序包还提供了相应的导出数据的函数,例如,write_sav()函数可以写入SPSS格式文件,write_sas()函数可以写入SAS格式文件,write_dta()函数可以写入Stata格式文件。

以下是其他类型数据读写的示例:

install.packages("haven")
library(haven)     #安装并加载haven程序包
#读取文件
data <- read_spss("clinical_data.sav")  	#读取以".sav"为后缀的SPSS文件数据
data <- read_sas("clinical_data.sas7bdat")	#读取以".sas7bdat"为后缀的SAS文件数据
data <- read_stata("clinical_data.dta")  	#读取以".dta"为后缀的Stata文件数据
#写入文件
clinical_data <- data.frame(
  patient_id = c(1, 2, 3, 4, 5),
  age = c(35, 45, 50, 28, 62),
  gender = c("M", "F", "M", "F", "M"),
  diagnosis = c("Hypertension", "Diabetes", "Obesity", "Asthma", "Hyperlipidemia")
)  #创建一个示例的数据框
write_sav(clinical_data, "clinical_data.sav") #写入SPSS文件
write_sas(clinical_data, "clinical_data.sas7bdat") #写入SAS文件
write_sav(clinical_data, "clinical_data.dta") #写入Stata文件
相关推荐
Algorithm15764 分钟前
JVM是什么,与Java的关系是什么,以及JVM怎么实现的跨平台性
java·开发语言·jvm
Gnevergiveup5 分钟前
2024网鼎杯青龙组Web+Misc部分WP
开发语言·前端·python
边疆.19 分钟前
C++类和对象 (中)
c语言·开发语言·c++·算法
yy_xzz21 分钟前
QT编译报错:-1: error: cannot find -lGL
开发语言·qt
你不讲 wood24 分钟前
使用 Axios 上传大文件分片上传
开发语言·前端·javascript·node.js·html·html5
林浔090632 分钟前
C语言部分输入输出(printf函数与scanf函数,getchar与putchar详解,使用Linux ubuntu)
c语言·开发语言
weixin_493202631 小时前
R语言实现GWAS meta分析(1)
r语言
一颗甜苞谷1 小时前
开源一款基于 JAVA 的仓库管理系统,支持三方物流和厂内物流,包含 PDA 和 WEB 端的源码
java·开发语言·开源
CLCNboss1 小时前
Mac安装Ruby
开发语言·经验分享·笔记·macos·ruby
ai产品老杨1 小时前
深度学习模型量化原理
开发语言·人工智能·python·深度学习·安全·音视频