R语言:进阶篇

->点击访问个人博客地址,相互交流学习<-

上一篇:[R语言——基础篇](https://www.jianshu.com/p/46861fe24361

1.条形图

条形图表示矩形条中的数据,条的长度与变量的值成比例。 R语言使用函数barplot()创建条形图。 R语言可以在条形图中绘制垂直和水平条。 在条形图中,每个条可以给予不同的颜色。

语法

在R语言中创建条形图的基本语法是 -

barplot(H, xlab, ylab, main, names.arg, col)

以下是所使用的参数的描述 -

  • H是包含在条形图中使用的数值的向量或矩阵。

  • xlab是x轴的标签。

  • ylab是y轴的标签。

  • main是条形图的标题。

  • names.arg是在每个条下出现的名称的向量。

  • col用于向图中的条形提供颜色。

使用输入向量和每个条的名称创建一个简单的条形图。
以下脚本将创建并保存当前R语言工作目录中的条形图。

# Give the chart file a name.
png(file = "barchart.png")

# Plot the bar chart.
barplot(H)

# Save the file.
dev.off()

当我们执行上面的代码,它产生以下结果 -

,使用R条形图

条形图标签,标题和颜色

可以通过添加更多参数来扩展条形图的功能。 主要参数用于添加标题。 col参数用于向条形添加颜色。 args.name是具有与输入向量相同数量的值的向量,以描述每个条的含义。

以下脚本将在当前R语言工作目录中创建并保存条形图。

# Create the data for the chart.
H <- c(7,12,28,3,41)
M <- c("Mar","Apr","May","Jun","Jul")

# Give the chart file a name.
png(file = "barchart_months_revenue.png")

# Plot the bar chart.
barplot(H,names.arg = M,xlab = "Month",ylab = "Revenue",col = "blue",
main = "Revenue chart",border = "red")

# Save the file.
dev.off()

当我们执行上面的代码,它产生以下结果 -

条形图使用R型

组合条形图和堆积条形图

我们可以使用矩阵作为输入值,在每个条中创建条形图和堆叠组的条形图。
超过两个变量表示为用于创建组合条形图和堆叠条形图的矩阵。

# Create the input vectors.
colors <- c("green","orange","brown")
months <- c("Mar","Apr","May","Jun","Jul")
regions <- c("East","West","North")

# Create the matrix of the values.
Values <- matrix(c(2,9,3,11,9,4,8,7,3,12,5,2,8,10,11),nrow = 3,ncol = 5,byrow = TRUE)

# Give the chart file a name.
png(file = "barchart_stacked.png")

# Create the bar chart.
barplot(Values,main = "total revenue",names.arg = months,xlab = "month",ylab = "revenue",
   col = colors)

# Add the legend to the chart.
legend("topleft", regions, cex = 1.3, fill = colors)

# Save the file.
dev.off()
,使用R堆叠条形图

2.箱线图

箱线图是数据集中的数据分布良好的度量。 它将数据集分成三个四分位数。 此图表表示数据集中的最小值,最大值,中值,第一四分位数和第三四分位数。 它还可用于通过绘制每个数据集的箱线图来比较数据集之间的数据分布。

R语言中使用boxplot()函数来创建箱线图。

语法

在R语言中创建箱线图的基本语法是 -

boxplot(x, data, notch, varwidth, names, main)

以下是所使用的参数的描述 -

  • x是向量或公式。

  • 数据是数据帧。

  • notch是逻辑值。 设置为TRUE以绘制凹口。

  • varwidth是一个逻辑值。 设置为true以绘制与样本大小成比例的框的宽度。

  • names是将打印在每个箱线图下的组标签。

  • main用于给图表标题。

我们使用R语言环境中可用的数据集“mtcars”来创建基本箱线图。 让我们看看mtcars中的列“mpg”和“cyl”。

input <- mtcars[,c('mpg','cyl')]
print(head(input))

当我们执行上面的代码,它会产生以下结果 -

                  mpg  cyl
Mazda RX4         21.0   6
Mazda RX4 Wag     21.0   6
Datsun 710        22.8   4
Hornet 4 Drive    21.4   6
Hornet Sportabout 18.7   8
Valiant           18.1   6

创建箱线图

以下脚本将为mpg(英里/加仑)和cyl(气缸数)之间的关系创建箱线图。

# Give the chart file a name.
png(file = "boxplot.png")

# Plot the chart.
boxplot(mpg ~ cyl, data = mtcars, xlab = "Number of Cylinders",
   ylab = "Miles Per Gallon", main = "Mileage Data")

# Save the file.
dev.off()

当我们执行上面的代码,它产生以下结果 -

#

带槽的箱线图

我们可以绘制带槽的箱线图,以了解不同数据组的中值如何相互匹配。
以下脚本将为每个数据组创建一个带缺口的箱线图。

# Give the chart file a name.
png(file = "boxplot_with_notch.png")

# Plot the chart.
boxplot(mpg ~ cyl, data = mtcars, 
   xlab = "Number of Cylinders",
   ylab = "Miles Per Gallon", 
   main = "Mileage Data",
   notch = TRUE, 
   varwidth = TRUE, 
   col = c("green","yellow","purple"),
   names = c("High","Medium","Low")
)
# Save the file.
dev.off()

当我们执行上面的代码,它产生以下结果 -

[图片上传中...(image-9f3e39-1552623568628-0)]

3.直方图

直方图表示被存储到范围中的变量的值的频率。 直方图类似于条形图,但不同之处在于将值分组为连续范围。 直方图中的每个柱表示该范围中存在的值的数量的高度。

R语言使用hist()函数创建直方图。 此函数使用向量作为输入,并使用一些更多的参数来绘制直方图。

语法

使用R语言创建直方图的基本语法是 -

hist(v,main,xlab,xlim,ylim,breaks,col,border)

以下是所使用的参数的描述 -

  • v是包含直方图中使用的数值的向量。

  • main表示图表的标题。

  • col用于设置条的颜色。

  • border用于设置每个条的边框颜色。

  • xlab用于给出x轴的描述。

  • xlim用于指定x轴上的值的范围。

  • ylim用于指定y轴上的值的范围。

  • break用于提及每个条的宽度。

使用输入vector,label,col和边界参数创建一个简单的直方图。
下面给出的脚本将创建并保存当前R语言工作目录中的直方图。

# Create data for the graph.
v <-  c(9,13,21,8,36,22,12,41,31,33,19)

# Give the chart file a name.
png(file = "histogram.png")

# Create the histogram.
hist(v,xlab = "Weight",col = "yellow",border = "blue")

# Save the file.
dev.off()

当我们执行上面的代码,它产生以下结果 -

直方图诉

X和Y值的范围

要指定X轴和Y轴允许的值的范围,我们可以使用xlimylim参数。
每个条的宽度可以通过使用间隔来确定。

# Create data for the graph.
v <- c(9,13,21,8,36,22,12,41,31,33,19)

# Give the chart file a name.
png(file = "histogram_lim_breaks.png")

# Create the histogram.
hist(v,xlab = "Weight",col = "green",border = "red", xlim = c(0,40), ylim = c(0,5),
   breaks = 5)

# Save the file.
dev.off()

当我们执行上面的代码,它产生以下结果 -

[图片上传中...(image-d6f09b-1552623852107-0)]

4.折线图

折线图是通过在它们之间绘制线段来连接一系列点的图。这些点在它们的坐标(通常是x坐标)值之一中排序。折线图通常用于识别数据中的趋势。

R语言中的情节()函数用于创建折线图。

语法

在R语言中创建折线图的基本语法是 -

plot(v,type,col,xlab,ylab)

以下是所使用的参数的描述 -

  • 是包含数值的向量。

  • 类型采用值“P”仅绘制点,“升”仅绘制线和“o”的绘制点和线。

  • xlab是X轴的标签。

  • ylab是Ÿ轴的标签。

  • 主要是图表的标题。

  • 山坳用于给点和线的颜色。

使用输入向量和类型参数“O”创建简单的折线图。以下脚本将在当前R工作目录中创建并保存折线图。

# Create the data for the chart.
v <- c(7,12,28,3,41)

# Give the chart file a name.
png(file = "line_chart.jpg")

# Plot the bar chart. 
plot(v,type = "o")

# Save the file.
dev.off()

当我们执行上面的代码,它产生以下结果 -

[图片上传中...(image-469771-1552624000469-2)]

折线图标题,颜色和标签

线图的特征可以通过使用附加参数来扩展。我们向点和线添加颜色,为图表添加标题,并向轴添加标签。

# Create the data for the chart.
v <- c(7,12,28,3,41)

# Give the chart file a name.
png(file = "line_chart_label_colored.jpg")

# Plot the bar chart.
plot(v,type = "o", col = "red", xlab = "Month", ylab = "Rain fall",
   main = "Rain fall chart")

# Save the file.
dev.off()

当我们执行上面的代码,它产生以下结果 -

折线图标记在ř型

多线型折线图

通过使用lines()函数,可以在同一个图表上绘制多条线。
在绘制第一行之后,lines ()函数可以使用一个额外的向量作为输入来绘制图表中的第二行。

# Create the data for the chart.
v <- c(7,12,28,3,41)
t <- c(14,7,6,19,3)

# Give the chart file a name.
png(file = "line_chart_2_lines.jpg")

# Plot the bar chart.
plot(v,type = "o",col = "red", xlab = "Month", ylab = "Rain fall", 
   main = "Rain fall chart")

lines(t, type = "o", col = "blue")

# Save the file.
dev.off()

当我们执行上面的代码,它产生以下结果 -

折线图与ř中多行

5.散点图

散点图显示在笛卡尔平面中绘制的许多点。 每个点表示两个变量的值。 在水平轴上选择一个变量,在垂直轴上选择另一个变量。
使用plot()函数创建简单散点图。

语法

在R语言中创建散点图的基本语法是 -

plot(x, y, main, xlab, ylab, xlim, ylim, axes)

以下是所使用的参数的描述 -

  • x是其值为水平坐标的数据集。

  • y是其值是垂直坐标的数据集。

  • main要是图形的图块。

  • xlab是水平轴上的标签。

  • ylab是垂直轴上的标签。

  • xlim是用于绘图的x的值的极限。

  • ylim是用于绘图的y的值的极限。

  • axes指示是否应在绘图上绘制两个轴。

我们使用R语言环境中可用的数据集“mtcars”来创建基本散点图。 让我们使用mtcars中的“wt”和“mpg”列。

input <- mtcars[,c('wt','mpg')]
print(head(input))

当我们执行上面的代码,它产生以下结果 -

              wt      mpg
Mazda RX4           2.620   21.0
Mazda RX4 Wag       2.875   21.0
Datsun 710          2.320   22.8
Hornet 4 Drive      3.215   21.4
Hornet Sportabout   3.440   18.7
Valiant             3.460   18.1

创建散点图

以下脚本将为wt(重量)和mpg(英里/加仑)之间的关系创建一个散点图。

# Get the input values.
input <- mtcars[,c('wt','mpg')]

# Give the chart file a name.
png(file = "scatterplot.png")

# Plot the chart for cars with weight between 2.5 to 5 and mileage between 15 and 30.
plot(x = input$wt,y = input$mpg,
   xlab = "Weight",
   ylab = "Milage",
   xlim = c(2.5,5),
   ylim = c(15,30),      
   main = "Weight vs Milage"
)

# Save the file.
dev.off()

当我们执行上面的代码,它产生以下结果 -

,使用R散点图

散点图矩阵

当我们有两个以上的变量,我们想找到一个变量和其余变量之间的相关性,我们使用散点图矩阵。 我们使用pairs()函数创建散点图的矩阵。

语法

在R中创建散点图矩阵的基本语法是 -

pairs(formula, data)

以下是所使用的参数的描述 -

  • formula表示成对使用的一系列变量。

  • data表示将从其获取变量的数据集。

每个变量与每个剩余变量配对。 为每对绘制散点图。

# Give the chart file a name.
png(file = "scatterplot_matrices.png")

# Plot the matrices between 4 variables giving 12 plots.

# One variable with 3 others and total 4 variables.

pairs(~wt+mpg+disp+cyl,data = mtcars,
   main = "Scatterplot Matrix")

# Save the file.
dev.off()

当执行上面的代码中,我们得到以下输出。

散点图矩阵,使用R

6.饼状图

R编程语言有许多库来创建图表和图表。 饼图是将值表示为具有不同颜色的圆的切片。 切片被标记,并且对应于每个片的数字也在图表中表示。
在R语言中,饼图是使用pie()函数创建的,它使用正数作为向量输入。 附加参数用于控制标签,颜色,标题等。

语法

使用R语言创建饼图的基本语法是 -

pie(x, labels, radius, main, col, clockwise)

以下是所使用的参数的描述 -

  • x是包含饼图中使用的数值的向量。

  • labels用于给出切片的描述。

  • radius表示饼图圆的半径(值-1和+1之间)。

  • main表示图表的标题。

  • col表示调色板。

  • clockwise是指示片段是顺时针还是逆时针绘制的逻辑值。

使用输入向量和标签创建一个非常简单的饼图。 以下脚本将创建并保存当前R语言工作目录中的饼图。

# Create data for the graph.
x <- c(21, 62, 10, 53)
labels <- c("London", "New York", "Singapore", "Mumbai")

# Give the chart file a name.
png(file = "city.jpg")

# Plot the chart.
pie(x,labels)

# Save the file.
dev.off()

当我们执行上面的代码,它产生以下结果 -

#

饼图标题和颜色

我们可以通过向函数中添加更多参数来扩展图表的功能。 我们将使用参数+ + main向图表添加标题,另一个参数是col,它将在绘制图表时使用彩虹色板。 托盘的长度应与图表中的值的数量相同。 因此,我们使用length(x)

以下脚本将创建并保存当前R语言工作目录中的饼图。

# Create data for the graph.
x <- c(21, 62, 10, 53)
labels <- c("London", "New York", "Singapore", "Mumbai")

# Give the chart file a name.
png(file = "city_title_colours.jpg")

# Plot the chart with title and rainbow color pallet.
pie(x, labels, main = "City pie chart", col = rainbow(length(x)))

# Save the file.
dev.off()

当我们执行上面的代码,它产生以下结果 -

饼图以标题和颜色

切片百分比和图表图例

我们可以通过创建其他图表变量来添加切片百分比和图表图例。

# Create data for the graph.
x <-  c(21, 62, 10,53)
labels <-  c("London","New York","Singapore","Mumbai")

piepercent<- round(100*x/sum(x), 1)

# Give the chart file a name.
png(file = "city_percentage_legends.jpg")

# Plot the chart.
pie(x, labels = piepercent, main = "City pie chart",col = rainbow(length(x)))
legend("topright", c("London","New York","Singapore","Mumbai"), cex = 0.8,
   fill = rainbow(length(x)))

# Save the file.
dev.off()

当我们执行上面的代码,它产生以下结果 -

[图片上传中...(image-f4714e-1552624406629-1)]

3D饼图

可以使用其他软件包绘制具有3个维度的饼图。 软件包plotrix有一个名为pie3D()的函数,用于此。

# Get the library.
library(plotrix)

# Create data for the graph.
x <-  c(21, 62, 10,53)
lbl <-  c("London","New York","Singapore","Mumbai")

# Give the chart file a name.
png(file = "3d_pie_chart.jpg")

# Plot the chart.
pie3D(x,labels = lbl,explode = 0.1, main = "Pie Chart of Countries ")

# Save the file.
dev.off()

当我们执行上面的代码,它产生以下结果 -

3D饼图

7.CSV文件

在R语言中,我们可以从存储在R语言环境外的文件中读取数据。我们还可以将数据写入将被操作系统存储和访问的文件.R语言可以读取和写入各种文件格式,如CSV,EXCEL,XML等。

在本章中,我们将学习从csv文件读取数据,然后将数据写入csv文件。该文件应该存在于当前工作目录中,以便R语言可以读取它。当然我们也可以设置我们自己的目录并从那里读取文件。

获取和设置工作目录

您可以使用getwd()函数检查R语言工作区指向的目录。您还可以使用setwd()函数设置新的工作目录。

# Get and print current working directory.
print(getwd())

# Set current working directory.
setwd("/web/com")

# Get and print current working directory.
print(getwd())

当我们执行上面的代码,它产生以下结果 -

[1] "/web/com/1441086124_2016"
[1] "/web/com"

此结果取决于您的操作系统和您当前工作的目录。

输入为CSV文件

CSV文件是一个文本文件,其中列中的值由逗号分隔。让我们考虑名为input.csv的文件中出现的以下数据。
您可以通过复制和粘贴此数据使用的Windows记事本创建此文件。使用记事本中的保存为所有文件()选项将文件保存为input.csv。

id,name,salary,start_date,dept
1,Rick,623.3,2012-01-01,IT
2,Dan,515.2,2013-09-23,Operations
3,Michelle,611,2014-11-15,IT
4,Ryan,729,2014-05-11,HR
 ,Gary,843.25,2015-03-27,Finance
6,Nina,578,2013-05-21,IT
7,Simon,632.8,2013-07-30,Operations
8,Guru,722.5,2014-06-17,Finance

读取CSV文件

以下是read.csv()函数的一个简单示例,用于读取当前工作目录中可用的CSV文件 -

data <- read.csv("input.csv")
print(data)
当我们执行上面的代码,它产生以下结果 -

      id,   name,    salary,   start_date,     dept
1      1    Rick     623.30    2012-01-01      IT
2      2    Dan      515.20    2013-09-23      Operations
3      3    Michelle 611.00    2014-11-15      IT
4      4    Ryan     729.00    2014-05-11      HR
5     NA    Gary     843.25    2015-03-27      Finance
6      6    Nina     578.00    2013-05-21      IT
7      7    Simon    632.80    2013-07-30      Operations
8      8    Guru     722.50    2014-06-17      Finance

分析CSV文件

默认情况下,read.csv()函数将输出作为数据帧。这可以容易地如下检查。此外,我们可以检查列和行的数量。

data <- read.csv("input.csv")

print(is.data.frame(data))
print(ncol(data))
print(nrow(data))

当我们执行上面的代码,它产生以下结果 -

[1] TRUE
[1] 5
[1] 8

一旦我们读取数据帧中的数据,我们可以应用所有适用于数据帧的函数,如下一节所述。

获得最高工资

# Create a data frame.
data <- read.csv("input.csv")

# Get the max salary from data frame.
sal <- max(data$salary)
print(sal)

当我们执行上面的代码,它产生以下结果 -

[1] 843.25

获取具有最高工资的人的详细信息
我们可以获取满足特定过滤条件的行,类似于SQL where子句。

# Create a data frame.
data <- read.csv("input.csv")

# Get the max salary from data frame.
sal <- max(data$salary)

# Get the person detail having max salary.
retval <- subset(data, salary == max(salary))
print(retval)

当我们执行上面的代码,它产生以下结果 -

      id    name  salary  start_date    dept
5     NA    Gary  843.25  2015-03-27    Finance

获取所有的IT部门员工的信息

# Create a data frame.
data <- read.csv("input.csv")

retval <- subset( data, dept == "IT")
print(retval)

当我们执行上面的代码,它产生以下结果 -

       id   name      salary   start_date   dept
1      1    Rick      623.3    2012-01-01   IT
3      3    Michelle  611.0    2014-11-15   IT
6      6    Nina      578.0    2013-05-21   IT

获得工资大于600的IT部门的人员

# Create a data frame.
data <- read.csv("input.csv")

info <- subset(data, salary > 600 & dept == "IT")
print(info)

当我们执行上面的代码,它产生以下结果 -

       id   name      salary   start_date   dept
1      1    Rick      623.3    2012-01-01   IT
3      3    Michelle  611.0    2014-11-15   IT

获得2014年或之后加入的人

# Create a data frame.
data <- read.csv("input.csv")

retval <- subset(data, as.Date(start_date) > as.Date("2014-01-01"))
print(retval)

当我们执行上面的代码,它产生以下结果 -

       id   name     salary   start_date    dept
3      3    Michelle 611.00   2014-11-15    IT
4      4    Ryan     729.00   2014-05-11    HR
5     NA    Gary     843.25   2015-03-27    Finance
8      8    Guru     722.50   2014-06-17    Finance

写入CSV文件

R语言可以创建csv文件形式的现有数据帧.write.csv()函数用于创建csv文件。此文件在工作目录中创建。

# Create a data frame.
data <- read.csv("input.csv")
retval <- subset(data, as.Date(start_date) > as.Date("2014-01-01"))

# Write filtered data into a new file.
write.csv(retval,"output.csv")
newdata <- read.csv("output.csv")
print(newdata)

当我们执行上面的代码,它产生以下结果 -

  X      id   name      salary   start_date    dept
1 3      3    Michelle  611.00   2014-11-15    IT
2 4      4    Ryan      729.00   2014-05-11    HR
3 5     NA    Gary      843.25   2015-03-27    Finance
4 8      8    Guru      722.50   2014-06-17    Finance

这里列X来自数据集newper。这可以在写入文件时使用附加参数删除。

# Create a data frame.
data <- read.csv("input.csv")
retval <- subset(data, as.Date(start_date) > as.Date("2014-01-01"))

# Write filtered data into a new file.
write.csv(retval,"output.csv", row.names = FALSE)
newdata <- read.csv("output.csv")
print(newdata)

当我们执行上面的代码,它产生以下结果 -

      id    name      salary   start_date    dept
1      3    Michelle  611.00   2014-11-15    IT
2      4    Ryan      729.00   2014-05-11    HR
3     NA    Gary      843.25   2015-03-27    Finance
4      8    Guru      722.50   2014-06-17    Finance

8.Excel文件

Microsoft Excel是最广泛使用的电子表格程序,以.xls或.xlsx格式存储数据。 R语言可以直接从这些文件使用一些excel特定的包。 很少这样的包是 - XLConnect,xlsx,gdata等。我们将使用xlsx包。 R语言也可以使用这个包写入excel文件。

安装xlsx软件包

您可以在R控制台中使用以下命令来安装“xlsx”软件包。 它可能会要求安装一些额外的软件包这个软件包依赖。 按照具有所需软件包名称的同一命令安装其他软件包。

install.packages("xlsx")

验证并加载“xlsx”软件包

使用以下命令验证并加载“xlsx”软件包。

# Verify the package is installed.
any(grepl("xlsx",installed.packages()))

# Load the library into R workspace.
library("xlsx")

当脚本运行,我们得到以下输出。

[1] TRUE
Loading required package: rJava
Loading required package: methods
Loading required package: xlsxjars

输入为xlsx文件

打开Microsoft Excel。 将以下数据复制并粘贴到名为sheet1的工作表中。

id  name      salary    start_date  dept
1   Rick      623.3     1/1/2012    IT
2   Dan       515.2     9/23/2013   Operations
3   Michelle  611       11/15/2014  IT
4   Ryan      729       5/11/2014   HR
5   Gary      843.25    3/27/2015   Finance
6   Nina      578       5/21/2013   IT
7   Simon     632.8     7/30/2013   Operations
8   Guru      722.5     6/17/2014   Finance

还要将以下数据复制并粘贴到另一个工作表,并将此工作表重命名为“city”。

name     city
Rick     Seattle
Dan      Tampa
Michelle Chicago
Ryan     Seattle
Gary     Houston
Nina     Boston
Simon    Mumbai
Guru     Dallas

将Excel文件另存为“input.xlsx”。 应将其保存在R工作区的当前工作目录中。

读取Excel文件

通过使用read.xlsx()函数读取input.xlsx,如下所示。 结果作为数据帧存储在R语言环境中。

# Read the first worksheet in the file input.xlsx.
data <- read.xlsx("input.xlsx", sheetIndex = 1)
print(data)

当我们执行上面的代码,它产生以下结果 -

      id,   name,    salary,   start_date,     dept
1      1    Rick     623.30    2012-01-01      IT
2      2    Dan      515.20    2013-09-23      Operations
3      3    Michelle 611.00    2014-11-15      IT
4      4    Ryan     729.00    2014-05-11      HR
5     NA    Gary     843.25    2015-03-27      Finance
6      6    Nina     578.00    2013-05-21      IT
7      7    Simon    632.80    2013-07-30      Operations
8      8    Guru     722.50    2014-06-17      Finance

9.二进制文件

二进制文件是包含仅以位和字节(0和1)的形式存储的信息的文件。它们不是人类可读的,因为它中的字节转换为包含许多其他不可打印字符的字符和符号。尝试使用任何文本编辑器读取二进制文件将显示如Ø和d的字符。

二进制文件必须由特定程序读取才能使用。例如,Microsoft Word程序的二进制文件只能通过Word程序读取到人类可读的形式。这表示,除了人类可读的文本之外,还有更多的信息,例如字符和页码等的格式化,它们也与字母数字字符一起存储。最后一个二进制文件是一个连续的字节序列。我们在文本文件中看到的换行符是连接第一行到下一行的字符。

有时,由其他程序生成的数据需要由ř作为二进制文件处理。另外,R语言是创建可以与其他程序共享的二进制文件所必需的。

ř语言有两个函数WriteBin()和readBin()来创建和读取二进制文件。

语法

writeBin(object, con)
readBin(con, what, n )

以下是所使用的参数的描述 -

  • CON是读取或写入二进制文件的连接对象。

  • 对象是要写入的二进制文件。

  • 什么是模式,如字符,整数等表示要读取的字节。

  • ñ是从二进制文件读取的字节数。

我们考虑R语言内置数据“mtcars”。首先,我们从它创建一个csv文件,并将其转换为二进制文件,并将其存储为操作系统文件。接下来我们读取这个创建的二进制文件。

写入二进制文件

我们将数据帧“mtcars”读取为CSV文件,然后将其作为二进制文件写入操作系统。

# Read the "mtcars" data frame as a csv file and store only the columns 
   "cyl", "am" and "gear".
write.table(mtcars, file = "mtcars.csv",row.names = FALSE, na = "", 
   col.names = TRUE, sep = ",")

# Store 5 records from the csv file as a new data frame.
new.mtcars <- read.table("mtcars.csv",sep = ",",header = TRUE,nrows = 5)

# Create a connection object to write the binary file using mode "wb".
write.filename = file("/web/com/binmtcars.dat", "wb")

# Write the column names of the data frame to the connection object.
writeBin(colnames(new.mtcars), write.filename)

# Write the records in each of the column to the file.
writeBin(c(new.mtcars$cyl,new.mtcars$am,new.mtcars$gear), write.filename)

# Close the file for writing so that it can be read by other program.
close(write.filename)

读取二进制文件

上面创建的二进制文件将所有数据存储为连续字节。因此,我们将通过选择适当的列名称值和列值来读取它。

# Create a connection object to read the file in binary mode using "rb".
read.filename <- file("/web/com/binmtcars.dat", "rb")

# First read the column names. n = 3 as we have 3 columns.
column.names <- readBin(read.filename, character(),  n = 3)

# Next read the column values. n = 18 as we have 3 column names and 15 values.
read.filename <- file("/web/com/binmtcars.dat", "rb")
bindata <- readBin(read.filename, integer(),  n = 18)

# Print the data.
print(bindata)

# Read the values from 4th byte to 8th byte which represents "cyl".
cyldata = bindata[4:8]
print(cyldata)

# Read the values form 9th byte to 13th byte which represents "am".
amdata = bindata[9:13]
print(amdata)

# Read the values form 9th byte to 13th byte which represents "gear".
geardata = bindata[14:18]
print(geardata)

# Combine all the read values to a dat frame.
finaldata = cbind(cyldata, amdata, geardata)
colnames(finaldata) = column.names
print(finaldata)

当我们执行上面的代码,它产生以下结果和图表 -

 [1]    7108963 1728081249    7496037          6          6          4
 [7]          6          8          1          1          1          0
[13]          0          4          4          4          3          3

[1] 6 6 4 6 8

[1] 1 1 1 0 0

[1] 4 4 4 3 3

     cyl am gear
[1,]   6  1    4
[2,]   6  1    4
[3,]   4  1    4
[4,]   6  0    3
[5,]   8  0    3

正如我们所看到的,我们通过读取 - [R中的二进制文件得到原始数据。

10.XML文件

XML是一种文件格式,它使用标准ASCII文本共享万维网,内部网和其他地方的文件格式和数据。它代表可扩展标记语言(XML)。类似于HTML它包含标记标签。但是与HTML中的标记标记描述页面的结构不同,在XML中,标记标记描述了包含在文件中的数据的含义。

您可以使用“XML”包读取R语言中的xml文件。此软件包可以使用以下命令安装。

install.packages("XML")

输入数据

通过将以下数据复制到文本编辑器(如记事本)中来创建XMl文件。使用.xml扩展名保存文件,并将文件类型选择为所有文件()。

<RECORDS>
   <EMPLOYEE>
      <ID>1</ID>
      <NAME>Rick</NAME>
      <SALARY>623.3</SALARY>
      <STARTDATE>1/1/2012</STARTDATE>
      <DEPT>IT</DEPT>
   </EMPLOYEE>
    
   <EMPLOYEE>
      <ID>2</ID>
      <NAME>Dan</NAME>
      <SALARY>515.2</SALARY>
      <STARTDATE>9/23/2013</STARTDATE>
      <DEPT>Operations</DEPT>
   </EMPLOYEE>
   
   <EMPLOYEE>
      <ID>3</ID>
      <NAME>Michelle</NAME>
      <SALARY>611</SALARY>
      <STARTDATE>11/15/2014</STARTDATE>
      <DEPT>IT</DEPT>
   </EMPLOYEE>
   
   <EMPLOYEE>
      <ID>4</ID>
      <NAME>Ryan</NAME>
      <SALARY>729</SALARY>
      <STARTDATE>5/11/2014</STARTDATE>
      <DEPT>HR</DEPT>
   </EMPLOYEE>
   
   <EMPLOYEE>
      <ID>5</ID>
      <NAME>Gary</NAME>
      <SALARY>843.25</SALARY>
      <STARTDATE>3/27/2015</STARTDATE>
      <DEPT>Finance</DEPT>
   </EMPLOYEE>
   
   <EMPLOYEE>
      <ID>6</ID>
      <NAME>Nina</NAME>
      <SALARY>578</SALARY>
      <STARTDATE>5/21/2013</STARTDATE>
      <DEPT>IT</DEPT>
   </EMPLOYEE>
   
   <EMPLOYEE>
      <ID>7</ID>
      <NAME>Simon</NAME>
      <SALARY>632.8</SALARY>
      <STARTDATE>7/30/2013</STARTDATE>
      <DEPT>Operations</DEPT>
   </EMPLOYEE>
   
   <EMPLOYEE>
      <ID>8</ID>
      <NAME>Guru</NAME>
      <SALARY>722.5</SALARY>
      <STARTDATE>6/17/2014</STARTDATE>
      <DEPT>Finance</DEPT>
   </EMPLOYEE>
    
</RECORDS>

读取XML文件

xml文件由R语言使用函数xmlParse()读取。它作为列表存储在R语言中。

# Load the package required to read XML files.
library("XML")

# Also load the other required package.
library("methods")

# Give the input file name to the function.
result <- xmlParse(file = "input.xml")

# Print the result.
print(result)

当我们执行上面的代码,它产生以下结果 -

1
    Rick
    623.3
    1/1/2012
    IT
  
  
    2
    Dan
    515.2
    9/23/2013
    Operations
  
  
    3
    Michelle
    611
    11/15/2014
    IT
  
  
    4
    Ryan
    729
    5/11/2014
    HR
  
  
    5
    Gary
    843.25
    3/27/2015
    Finance
  
  
    6
    Nina
    578
    5/21/2013
    IT
  
  
    7
    Simon
    632.8
    7/30/2013
    Operations
  
  
    8
    Guru
    722.5
    6/17/2014
    Finance

获取XML文件中存在的节点数

# Load the packages required to read XML files.
library("XML")
library("methods")

# Give the input file name to the function.
result <- xmlParse(file = "input.xml")

# Exract the root node form the xml file.
rootnode <- xmlRoot(result)

# Find number of nodes in the root.
rootsize <- xmlSize(rootnode)

# Print the result.
print(rootsize)

当我们执行上面的代码,它产生以下结果 -

output
[1] 8

第一个节点的详细信息

让我们看看解析文件的第一条记录。它将给我们一个关于存在于顶层节点中的各种元素的想法。

# Load the packages required to read XML files.
library("XML")
library("methods")

# Give the input file name to the function.
result <- xmlParse(file = "input.xml")

# Exract the root node form the xml file.
rootnode <- xmlRoot(result)

# Print the result.
print(rootnode[1])

当我们执行上面的代码,它产生以下结果 -

$EMPLOYEE
  1
  Rick
  623.3
  1/1/2012
  IT
 

attr(,"class")
[1] "XMLInternalNodeList" "XMLNodeList" 

获取节点的不同元素

# Load the packages required to read XML files.
library("XML")
library("methods")

# Give the input file name to the function.
result <- xmlParse(file = "input.xml")

# Exract the root node form the xml file.
rootnode <- xmlRoot(result)

# Get the first element of the first node.
print(rootnode[[1]][[1]])

# Get the fifth element of the first node.
print(rootnode[[1]][[5]])

# Get the second element of the third node.
print(rootnode[[3]][[2]])

当我们执行上面的代码,它产生以下结果 -

1 
IT 
Michelle 

XML到数据帧

为了在大文件中有效地处理数据,我们将xml文件中的数据作为数据框读取。然后处理数据帧以进行数据分析。

# Load the packages required to read XML files.
library("XML")
library("methods")

# Convert the input xml file to a data frame.
xmldataframe <- xmlToDataFrame("input.xml")
print(xmldataframe)

当我们执行上面的代码,它产生以下结果 -

      ID    NAME     SALARY    STARTDATE       DEPT 
1      1    Rick     623.30    2012-01-01      IT
2      2    Dan      515.20    2013-09-23      Operations
3      3    Michelle 611.00    2014-11-15      IT
4      4    Ryan     729.00    2014-05-11      HR
5     NA    Gary     843.25    2015-03-27      Finance
6      6    Nina     578.00    2013-05-21      IT
7      7    Simon    632.80    2013-07-30      Operations
8      8    Guru     722.50    2014-06-17      Finance

由于数据现在可以作为数据帧,我们可以使用数据帧相关函数来读取和操作文件。

11.JSON文件

JSON文件以人类可读格式将数据存储为文本.Json代表JavaScript Object Notation.R可以使用rjson包读取JSON文件。

安装rjson包

在ř语言控制台中,您可以发出以下命令来安装rjson包。

install.packages("rjson")

输入数据

通过将以下数据复制到文本编辑器(如记事本)中来创建JSON文件。使用.json扩展名保存文件,并将文件类型选择为所有文件()。

{ 
   "ID":["1","2","3","4","5","6","7","8" ],
   "Name":["Rick","Dan","Michelle","Ryan","Gary","Nina","Simon","Guru" ],
   "Salary":["623.3","515.2","611","729","843.25","578","632.8","722.5" ],
   
   "StartDate":[ "1/1/2012","9/23/2013","11/15/2014","5/11/2014","3/27/2015","5/21/2013",
      "7/30/2013","6/17/2014"],
   "Dept":[ "IT","Operations","IT","HR","Finance","IT","Operations","Finance"]
}

读取JSON文件

JSON文件由R使用来自JSON()的函数读取。它作为列表存储在R中。

# Load the package required to read JSON files.
library("rjson")

# Give the input file name to the function.
result <- fromJSON(file = "input.json")

# Print the result.
print(result)

当我们执行上面的代码,它产生以下结果 -

$ID
[1] "1"   "2"   "3"   "4"   "5"   "6"   "7"   "8"

$Name
[1] "Rick"     "Dan"      "Michelle" "Ryan"     "Gary"     "Nina"     "Simon"    "Guru"

$Salary
[1] "623.3"  "515.2"  "611"    "729"    "843.25" "578"    "632.8"  "722.5"

$StartDate
[1] "1/1/2012"   "9/23/2013"  "11/15/2014" "5/11/2014"  "3/27/2015"  "5/21/2013"
   "7/30/2013"  "6/17/2014"

$Dept
[1] "IT"         "Operations" "IT"         "HR"         "Finance"    "IT"
   "Operations" "Finance"

将JSON转换为数据帧

我们可以使用as.data.frame()函数将上面提取的数据转换为ř语言数据帧以进行进一步分析。

# Load the package required to read JSON files.
library("rjson")

# Give the input file name to the function.
result <- fromJSON(file = "input.json")

# Convert JSON file to a data frame.
json_data_frame <- as.data.frame(result)

print(json_data_frame)

当我们执行上面的代码,它产生以下结果 -

      id,   name,    salary,   start_date,     dept
1      1    Rick     623.30    2012-01-01      IT
2      2    Dan      515.20    2013-09-23      Operations
3      3    Michelle 611.00    2014-11-15      IT
4      4    Ryan     729.00    2014-05-11      HR
5     NA    Gary     843.25    2015-03-27      Finance
6      6    Nina     578.00    2013-05-21      IT
7      7    Simon    632.80    2013-07-30      Operations
8      8    Guru     722.50    2014-06-17      Finance

13.Web数据

许多网站提供数据供其用户使用。例如,世界卫生组织(WHO)以CSV,txt和XML文件的形式提供健康和医疗信息的报告。使用R语言程序,我们可以从这些网站以编程方式提取特定数据R语言中用于从网站中提取数据的一些包是“RCurl”,XML“和”stringr“,它们用于连接到URL,识别文件所需的链接并将它们下载到本地环境。

安装 - [R语言的包

处理URL和链接到文件需要以下的包。如果它们在R语言环境中不可用,您可以使用以下命令安装它们。

install.packages("RCurl")
install.packages("XML")
install.packages("stringr")
install.packages("plyr")

输入数据

我们将访问URL 天气数据,并使用[R在2015年下载CSV文件。

我们将使用函数getHTMLLinks()来收集文件的URL。然后我们将使用函数downlaod.file()将文件保存到本地系统。由于我们将对多个文件一次又一次地应用相同的代码,因此我们将创建一个被多次调用的函数。文件名作为参数以R列表对象的形式传递到此函数。

# Read the URL.
url <- "http://www.geos.ed.ac.uk/~weather/jcmb_ws/"

# Gather the html links present in the webpage.
links <- getHTMLLinks(url)

# Identify only the links which point to the JCMB 2015 files. 
filenames <- links[str_detect(links, "JCMB_2015")]

# Store the file names as a list.
filenames_list <- as.list(filenames)

# Create a function to download the files by passing the URL and filename list.
downloadcsv <- function (mainurl,filename) {
   filedetails <- str_c(mainurl,filename)
   download.file(filedetails,filename)
}

# Now apply the l_ply function and save the files into the current R working directory.
l_ply(filenames,downloadcsv,mainurl = "http://www.geos.ed.ac.uk/~weather/jcmb_ws/")

验证文件下载

运行上述代码后,您可以在当前ř语言工作目录中找到以下文件。

"JCMB_2015.csv" "JCMB_2015_Apr.csv" "JCMB_2015_Feb.csv" "JCMB_2015_Jan.csv"
   "JCMB_2015_Mar.csv"

14.数据库

Sql查询。但R语言可以轻松地连接到许多关系数据库,如MySql,Oracle,Sql服务器等,并数据是从它们获取记录作为数据框。一旦数据在R语言环境中可用,它就变成正常的R语言数据集,并且可以使用所有强大的包和函数来操作或分析。
在本教程中,我们将使用MySQL的作为连接到- [R语言的参考数据库。

RMySQL包

R语言有一个名为“RMySQL”的内置包,它提供与MySql数据库之间的本地连接。您可以使用以下命令在R语言环境中安装此软件包。

install.packages("RMySQL")

将ř连接到MySQL的

一旦安装了包,我们在R中创建一个连接对象以连接到数据库。它使用用户名,密码,数据库名称和主机名作为输入。

# Create a connection Object to MySQL database.
# We will connect to the sampel database named "sakila" that comes with MySql installation.
mysqlconnection = dbConnect(MySQL(), user = 'root', password = '', dbname = 'sakila',
   host = 'localhost')

# List the tables available in this database.
 dbListTables(mysqlconnection)

当我们执行上面的代码,它产生以下结果 -

 [1] "actor"                      "actor_info"                
 [3] "address"                    "category"                  
 [5] "city"                       "country"                   
 [7] "customer"                   "customer_list"             
 [9] "film"                       "film_actor"                
[11] "film_category"              "film_list"                 
[13] "film_text"                  "inventory"                 
[15] "language"                   "nicer_but_slower_film_list"
[17] "payment"                    "rental"                    
[19] "sales_by_film_category"     "sales_by_store"            
[21] "staff"                      "staff_list"                
[23] "store"     

查询表

我们可以使用函数dbSendQuery()查询MySql中的数据库表。查询在MySql中执行,并使用R语言fetch()函数返回结果集。最后,它被存储为R语言中的数据帧。

# Query the "actor" tables to get all the rows.
result = dbSendQuery(mysqlconnection, "select * from actor")

# Store the result in a R data frame object. n = 5 is used to fetch first 5 rows.
data.frame = fetch(result, n = 5)
print(data.frame)

当我们执行上面的代码,它产生以下结果 -

        actor_id   first_name    last_name         last_update
1        1         PENELOPE      GUINESS           2006-02-15 04:34:33
2        2         NICK          WAHLBERG          2006-02-15 04:34:33
3        3         ED            CHASE             2006-02-15 04:34:33
4        4         JENNIFER      DAVIS             2006-02-15 04:34:33
5        5         JOHNNY        LOLLOBRIGIDA      2006-02-15 04:34:33

带过滤条件的查询

我们可以传递任何有效的选择查询来获取结果。

result = dbSendQuery(mysqlconnection, "select * from actor where last_name = 'TORN'")

# Fetch all the records(with n = -1) and store it as a data frame.
data.frame = fetch(result, n = -1)
print(data)

当我们执行上面的代码,它产生以下结果 -

        actor_id    first_name     last_name         last_update
1        18         DAN            TORN              2006-02-15 04:34:33
2        94         KENNETH        TORN              2006-02-15 04:34:33
3       102         WALTER         TORN              2006-02-15 04:34:33

更新表中的行

我们可以通过将更新查询传递给dbSendQuery()函数来更新Mysql的表中的行。

dbSendQuery(mysqlconnection, "update mtcars set disp = 168.5 where hp = 110")

在执行上面的代码后,我们可以看到在MySQL的环境中更新的表。
将数据插入表中

dbSendQuery(mysqlconnection,
   "insert into mtcars(row_names, mpg, cyl, disp, hp, drat, wt, qsec, vs, am, gear, carb)
   values('New Mazda RX4 Wag', 21, 6, 168.5, 110, 3.9, 2.875, 17.02, 0, 1, 4, 4)"
)

在执行上面的代码后,我们可以看到插入到MySQL的环境中的表中的行。

在MySQL的中创建表

我们可以在MySql中使用函数dbWriteTable()创建表。如果表已经存在,它将覆盖该表,并将数据帧用作输入。

# Create the connection object to the database where we want to create the table.
mysqlconnection = dbConnect(MySQL(), user = 'root', password = '', dbname = 'sakila', 
   host = 'localhost')

# Use the R data frame "mtcars" to create the table in MySql.
# All the rows of mtcars are taken inot MySql.
dbWriteTable(mysqlconnection, "mtcars", mtcars[, ], overwrite = TRUE)

执行上面的代码后,我们可以看到在MySQL的环境中创建的表。

删除的MySQL中的表

我们可以删除MySql数据库中的表,将drop table语句传递到dbSendQuery()中,就像我们使用它查询表中的数据一样。

dbSendQuery(mysqlconnection, 'drop table if exists mtcars')

执行上面的代码后,我们可以看到表在MySQL的环境中被删除。

15.外部资源

以下资源包含有关R语言编程的其他信息。 请使用它们获得有关此主题的更深入的知识。

R语言编程的相关链接

R上的编程有用的书籍

16.常见面试题

什么是R语言编程?

R语言是一种用于统计分析和为此目的创建图形的编程语言。不是数据类型,它具有用于计算的数据对象。它用于数据挖掘,回归分析,概率估计等领域,使用其中可用的许多软件包。

R语言中的不同数据对象是什么?

它们是R语言中的6个数据对象。它们是向量,列表,数组,矩阵,数据框和表。

什么使R语言中的有效变量名?

有效的变量名称由字母,数字和点或下划线字符组成。变量名以字母或不以数字后跟的点开头。

数组和矩阵之间的主要区别是什么?

矩阵总是二维的,因为它只有行和列。但是阵列可以具有任何数量的维度,并且每个维度是矩阵。例如,3x3x2阵列表示维度为3x3的2个矩阵。

R语言中的哪个数据对象用于存储和处理分类数据?

R语言中的因子数据对象用于存储和处理R语言中的分类数据。

如何在R语言中加载和使用csv文件?

可以使用R语言ead.csv函数加载csv文件。 R语言在使用此函数读取csv文件时创建数据框。

如何获取R语言中当前工作目录的名称?

命令getwd()给出了R语言环境中的当前工作目录。

什么是R语言 Base包?

这是在R语言环境设置时默认加载的包。它提供了R语言环境中的基本功能,如输入/输出,算术计算等。

在逻辑回归中如何使用R语言?

逻辑回归处理测量二元响应变量的概率。在R语言中,函数glm()用于创建逻辑回归。

如何访问名为M的矩阵的第2列和第4行中的元素?

表达式M [4,2]给出了第4行和第2列的元素。

什么是向量中元素的回收?举个例子。

当在操作中涉及不同长度的两个向量时,较短向量的元素被重用以完成操作。这被称为元素循环。示例-v1 <-c(4,1,0,6)和V2 <-c(2,4),则v1 * v2给出(8,4,0,24)。重复元件2和4。

在R语言中调用函数有什么不同的方法?

我们可以用3种方式在R语言中调用一个函数。第一种方法是通过使用参数的位置来调用。第二个方法id通过使用参数的名称来调用,第三个方法是通过默认参数调用。

什么是R语言中的延迟函数评估?

函数的延迟评估意味着,只有当它在函数体内部使用时,才会评估参数。如果没有对函数体中的参数的引用,则它被简单地忽略。

如何在R语言中安装软件包?

要在R语言中安装一个包,我们使用下面的命令。

install.packages("package Name")

命名用于读取XML文件的R语言包。
名为“XML”的包用于读取和处理XML文件。

我们可以更新和删除列表中的任何元素吗?

我们可以更新任何元素,但我们只能删除列表末尾的元素。

给一般表达式在R语言中创建一个矩阵。
在R语言中创建矩阵的一般表达式是 - matrix(data,nrow,ncol,byrow,dimnames)

该函数用于在R语言中创建boxplot图形?

boxplot()函数用于在R语言中创建箱线图。它使用公式和数据框作为输入创建箱线图。

在做时间序列分析时,在ts()函数中fR语言equency = 6是什么意思?

频率6表示时间序列数据的时间间隔是每10分钟一小时。

什么是R语言中的数据重塑?

在R语言中,数据对象可以从一种形式转换为另一种形式。例如,我们可以通过合并许多列表来创建数据框。这涉及一系列R语言命令,以将数据带入新格式。这被称为数据整形。

R语言unif(4)的输出是什么?

它生成0和1之间的4个随机数。

如何获得R语言中安装的所有软件包的列表?

使用命令

installed.packages()

运行命令 - strsplit(x,“e”)是什么意思?

它将向量x中的字符串拆分为字母e位置处的子字符串。

给一个R脚本从字符串中提取大写的所有唯一字 - “快速的棕色狐狸跳过懒惰的狗”。

x <- “快速的棕色狐狸跳过懒惰的狗”
split.string <- strsplit(x,"")
extract.words <- split.string [[1]]
result <- unique(tolower(extract.words))
print(result)

向量v是c(1,2,3,4),列表x是列表(5:8),v * x [1]的输出是什么?

v * x [1]中的错误:二进制运算符的非数值参数

向量v是c(1,2,3,4),列表x是列表(5:8),v * x [[1]]的输出是什么?

[1] 5 12 21 32s

unlist()是什么?

它将列表转换为向量。

给予R语言表达式,从使用pbinom的硬币51个硬币中得到26个或更少的头。

x <- pbinom(26,51,0.5)
print(x)

X是向量c(5,9.2,3,8.51,NA),mean(x)的输出是什么?

NA

如何将JSON文件中的数据转换为数据框?

使用函数as.data.frame()

在R语言中给出一个函数,用向量的元素的和代替向量x的所有缺失值?

function(x){x [is.na(x)] <sum(x,na.rm = TRUE); x }

apply()在R语言中的用途是什么?

它用于对数组中的每个元素应用相同的函数。例如,查找每行中行的平均值。

是数组称为矩阵还是矩阵称为数组?

每个矩阵可以称为数组,但不能相反。矩阵总是二维的,但数组可以是任何维度。

如何找到缺失值的帮助页面?

?NA

如何获得向量x的标准偏差?

sd(x,na.rm = TRUE)

如何在R语言中设置当前工作目录的路径?

setwd("Path")

"%%"和"%/%"之间有什么区别?

"%%"给出第一向量与第二向量的除法的余数,而"%/%"给出第一向量与第二向量的除法的商。

col.max(x)是什么?

查找该列具有每行的最大值。

给出创建直方图的命令。

hist()

如何从R语言工作区中删除向量?

rm(x)

列出包"MASS"中可用的数据集

data(package ="MASS")

列出所有可用软件包中可用的数据集。

data(package = .packages(all.available = TRUE))

什么是命令的使用 - install.packages(file.choose(),repos = NULL)?

它用于通过浏览和选择文件从本地目录安装R语言包。

给出命令以检查元素15是否存在于向量x中。

15%在%x

给出创建散点图矩阵的语法。

pairs(formula, data)

其中公式表示成对使用的变量系列,数据表示从中获取变量的数据集。

R语言中的subset()函数和sample()函数有什么区别?

subset()函数用于选择变量和观察值。 sample()函数用于从数据集中选择大小为n的随机样本。

如何检查"m"是R语言中的矩阵数据对象?

is.matrix(m)应该重新运行TRUE。

下面的表达式all(NA == NA)的输出是什么?

[1] NA

如何获得矩阵在R语言中的转置?

函数t()用于转置矩阵。示例-t(m),其中m是矩阵。

在R语言中使用"next"语句是什么?

当我们想要跳过循环的当前迭代而不终止它时,R编程语言中的"next"语句是有用的。

下一篇:[R语言——统计应用篇](https://www.jianshu.com/p/005801fd57dc

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容