R语言 数据处理
R编程语言用于统计和数据分析目的。
R语言有能力读取不同类型的文件,如逗号分隔值(CSV)文件、文本文件、Excel表格和文件、SPSS文件、SAS文件等。
R语言允许其用户在一些预定义的函数的帮助下顺利地处理系统目录,这些函数以目录的路径为参数或返回用户正在处理的当前目录的路径。下面是R语言中的一些目录函数。
- getwd():该函数用于获取R所使用的当前工作目录。
- setwd(): R的这个函数用来改变当前工作目录的路径,目录的路径作为参数在函数中传递。
示例:
setwd("C:/RExamples/")
或者
setwd("C:\\RExamples\\")
- list.files():该函数列出了当前工作目录中的所有文件和文件夹。
在R中导入文件
让我们拿一些基本的文件在R中导入,来学习导入数据文件的方法。
导入文本文件
在R语言中,文本文件可以通过 read.table() 函数来读取。
语法
read.table(filename, header = FALSE, sep = "")
参数:
header 代表文件是否包含头行
sep 代表文件中使用的分隔符值。
要了解 read.table() 的所有参数,请在R中执行以下命令。
help("read.table")
例子:
假设在当前工作目录下有一个文件,使用R编程,从该特定文本文件中导入数据,文本文件的内容如图所示。
100 A a
200 B b
300 C c
400 D d
500 E e
600 F f
数值之间用空格隔开。
# Check current working directory
getwd()
# Get content into a data frame
data <- read.table("TextFileExample.txt",
header = FALSE, sep = " ")
# Printing content of Text File
print(data)
# Print the class of data
print(class(data))
输出
[1] "C:/Users/xyz/Documents"
V1 V2 V3
1 100 A a
2 200 B b
3 300 C c
4 400 D d
5 500 E e
6 600 F f
[1] "data.frame"
导入CSV文件
逗号分隔值或CSV文件可以使用 read.csv() 函数在R中导入和读取。
语法:
read.csv(filename, header = FALSE, sep = "")
参数:
header代表文件是否包含头行
sep代表文件中使用的分隔符值
要了解 read.csv() 的所有参数,在R中执行以下命令。
help("read.csv")
例子:
假设当前工作目录下有一个csv文件,文件内容如图所示:
# Check current working directory
getwd()
# Get content into a data frame
data <- read.csv("CSVFileExample.csv",
header = FALSE,sep = "\t")
# Printing content of Text File
print(data)
# Print the class of data
print(class(data))
输出
[1] "C:/Users/xyz/Documents"
V1 V2 V3
1 100 AB ab
2 200 CD cd
3 300 EF ef
4 400 GH gh
5 500 IJ ij
[1] "data.frame"
导入Excel文件
要读取和导入Excel文件, “xlsx “包需要使用 read.xlsx() 函数。要读取”.xls “excel文件,需要 “gdata “包使用 read.xls() 函数。
语法:
read.xlsx(filename, sheetIndex)
或者
read.xlsx(filename, sheetName)
参数:
sheetIndex指定工作表的编号
sheetName 指定工作表的名称
要了解read.xlsx()的所有参数,请在R中执行以下命令。
help("read.xlsx")
示例:
假设当前工作目录中有一个xlsx文件,文件内容如图所示:
# Install xlsx package
install.packages("xlsx")
library(xlsx)
# Check current working directory
getwd()
# Get content into a data frame
data <- read.xlsx("ExcelExample.xlsx",
sheetIndex = 1,
header = FALSE)
# Printing content of Text File
print(data)
# Print the class of data
print(class(data))
输出
[1] "C:/Users/xyz/Documents"
X1 X2 X3
1 1000 ABC abc
2 2000 DEF def
3 3000 GHI ghi
4 4000 JKL jkl
5 5000 MNO mno
[1] "data.frame"
在R中导出文件
下面是一些在R中导出数据到文件的方法。
- Using console
R中的cat()函数是用来将对象输出到控制台的。它也可以用于将输出重定向到一个特定的文件。
语法:
cat(..., file)
参数:
file指定输出的文件名。
要了解cat()的所有参数,在R中执行以下命令。
help("cat")
示例:
str = "World"
# Redirect Output to file
cat("Hello, ", str, file = "catExample.txt")
输出:
上面的代码创建了一个新的文件,并重定向了cat()的输出。执行该代码后,文件的内容显示如下
Hello, World
- 使用sink()函数:
sink()函数用于将cat()和print()的所有输出重定向到指定的文件名。
语法:
sink(filename) # begins redirecting output to file
.
.
sink()
要知道sink()的所有参数,在R中执行以下命令。
help("sink")
示例:
# Begin redirecting output
sink("SinkExample.txt")
x <- c(1, 3, 4, 5, 10)
print(mean(x))
print(class(x))
print(median(x))
sink()
输出:
上面的代码创建了一个新的文件并重定向输出。执行该代码后,文件的内容显示如下
[1] 4.6
[1] "numeric"
[1] 4
写入CSV文件
矩阵或数据框对象可以通过 write.csv() 函数重定向并写入csv文件。
语法: write.csv(x, file)
参数:
file 指定用于写入的文件名
要了解write.csv()的所有参数,请在R中执行以下命令。
help("write.csv")
例子
# Create vectors
x <- c(1, 3, 4, 5, 10)
y <- c(2, 4, 6, 8, 10)
z <- c(10, 12, 14, 16, 18)
# Create matrix
data <- cbind(x, y, z)
# Writing matrix to CSV File
write.csv(data, file = "CSVWrite.csv", row.names = FALSE)
输出:
以上代码创建了一个新的文件并重定向输出。执行该代码后,文件的内容显示如下–