R是用于统计计算和图形的语言和环境。
R提供了各种各样的统计信息(线性和非线性建模,经典统计检验,时间序列分析,分类,聚类……)和图形技术,并且具有高度的可扩展性。S语言通常是统计方法论研究的首选工具,R语言提供了一种开放源代码的途径来参与该活动。
参考连接:link.
link


以下内容都是在相关连接上,学习执行总结的,目前只是只知皮毛。有些也还是不明白,希望在这方面有造诣的人,可以指点一二。


一、随笔笔记

变量分配有R对象,R对象的数据类型变为变量的数据类型。经常使用的数据类型为:

        矢量
        列表
        矩阵
        数组
        因子
        数据帧

1.Matrices 矩阵

矩阵是二维矩形数据集。它可以使用矩形函数的向量输入创建。

matrix(data,nrow = 1,ncol =1 ,byrow = FALSE,dimnames = NULL)
#创建一个矩阵,当把byrow为TRUE的时候
M = matrix( c('a','b','c','e','7','r'), nrow = 2, ncol = 3, byrow = TRUE)
#打印结果
print(M)
     [,1] [,2] [,3]
[1,] "a"  "b"  "c" 
[2,] "e"  "7"  "r"

#创建一个矩阵,当把byrow为FALSE的时候
M = matrix( c('a','b','c','e','7','r'), nrow = 2, ncol = 3, byrow = FALSE)
#打印结果
print(M)
     [,1] [,2] [,3]
[1,] "a"  "c"  "7" 
[2,] "e"  "b"  "r"

#我还测试了一下这样的情况,当聚和向量的个数为5,nrow是2,ncol = 3的时候
M = matrix( c('a','b','c','e','7'), nrow = 2, ncol = 3, byrow = FALSE)
#会报错
Warning message:
  In matrix(c('a','b','c','e','7'), nrow = 2, ncol = 3, byrow = FALSE):
  数据长度[5]不是矩阵行数[2]的整倍。
  同理,聚和向量的个数为4, nrow是2,ncol = 3的时候,也会报错。

2.Array数组

虽然矩阵被限制为二维,但阵列可以具有任何数量的维度。数组函数使用一个dim属性创建一个所需的维数:

# Create an array.
a <- array(c('green','yellow'))
print(a)
运行结果为:
[1] "green"  "yellow" 

在下面的例子中,我们创建了一个包含两个元素的数组,每个元素为3x3个矩阵。
# Create an array.
a <- array(c('green','yellow'),dim = c(3,3,2))
print(a)
当我们执行上面的代码,它产生以下结果
, , 1

     [,1]     [,2]     [,3]    
[1,] "green"  "yellow" "green" 
[2,] "yellow" "green"  "yellow"
[3,] "green"  "yellow" "green" 

, , 2

     [,1]     [,2]     [,3]    
[1,] "yellow" "green"  "yellow"
[2,] "green"  "yellow" "green" 
[3,] "yellow" "green"  "yellow" 
 
在下面的例子中,我们创建了一个包含一个元素的数组,每个元素为3x3个矩阵。

# Create an array.
a <- array(c('green','yellow'),dim = c(3,3))
print(a)
当我们执行上面的代码,它产生以下结果
     [,1]     [,2]     [,3]    
[1,] "green"  "yellow" "green" 
[2,] "yellow" "green"  "yellow"
[3,] "green"  "yellow" "green"  

3.factor因子

因子是使用向量创建的R对象。它将向量与向量之间不同的值一起存储为标签。标签总是字符,不管它在输入向量中是数字还是字符还是布尔。它们在统计建模中非常有用。使用factor()创建因子。nlevels函数给出级别计数。

# Create a vector.
apple_colors <- c('green','green','yellow','red','red','red','green')

# Create a factor object.
factor_apple <- factor(apple_colors)

# Print the factor.
print(factor_apple)
print(nlevels(factor_apple))
当我们执行上面的代码,它产生以下结果
[1] green  green  yellow red    red    red    green 
Levels: green red yellow
# applying the nlevels function we can know the number of distinct values
[1] 3

4.data Frame数据帧

数据帧是表格数据对象。与数据帧中的矩阵不同,每列可以包含不同的数据模式。第一列可以是数字,第二列可以是数组,第三列可以是逻辑。使用data.frame()创建数据帧。

# Create the data frame.
BMI <- 	data.frame(
   gender = c("Male", "Male","Female"), 
   height = c(152, 171.5, 165), 
   weight = c(81,93, 78),
   Age = c(42,38,26)
)
print(BMI)
当我们执行上面的代码,它产生以下结果
  gender height weight Age
1   Male  152.0     81  42
2   Male  171.5     93  38
3 Female  165.0     78  26 

#注意的是它是等长度的向量的列表。如果值不是一样的长度,会报错参数值意味着不同的行数:32

5.算数运算符

示例如下:

>   v <- c(10,8,9)
 >   t <- c(5,3)
 >   print(v -t)
运行结果为
[1]  5   5  4
#但是会报错:warning message: In v -t :长的对象长度不是端的对象长度的整倍数
#如果我们对不等长的两个向量应用算术运算,则较短向量的元素被循环以完成操作。
>   v <- c(10,8,987)
 >   t <- c(5,3)
 >   print(v -t)
运行结果为
[1]  5   5  4  84
#这样的运行结果就是正确的
其他的运算符也是同理,具体参考链接:
https://www.w3cschool.cn/r/r_operators.html

6.跨数组元素的计算

我们可以使用apply()函数在数组中的元素上进行计算:

apply(x, margin, fun)
   以下是所使用的参数的说明 -
      x是一个数组。
      margin是所使用的数据集的名称。
      fun是要应用于数组元素的函数。
#使用apply()函数,做以下一系列操作
vector1 <- c(1,2,3)
vector2 <- c(1,2,3,4,5,6)
#先创建一个元素的数组,每个数组为 3 *3的矩阵
new.array <- array(c(vector1,vector2),dim = c(3,3))
print(new.array)
#结果
         [,1]    [,2]    [,3] 
[1,]      1     1       4
[2,]      2     2       5
[3,]      3     3       6

result <- apply(new.array, c(1), sum)
print(result)
#运行结果
[1]    6  9  12 
#c(2)的结果集
result <- apply(new.array, c(2), sum)
print(result)
#运行结果
[1]    6  9  15

#再创建两个元素的数组,每个数组为 3 *3的矩阵
new.array <- array(c(vector1,vector2),dim = c(3,3,2))
print(new.array)
#运行结果
, , 1

     [,1] [,2] [,3]
[1,]    1  1   4
[2,]    2   2   5
[3,]    3   3   6

, , 2

     [,1] [,2] [,3]
[1,]    1   1   4
[2,]    2   2   5
[3,]    3   3   6

#c(1)数据集的结果
result <- apply(new.array, c(1), sum)
#result的运行结果
[1] 12  18  24 

#c(2)数据集的结果
result1 <- apply(new.array, c(2), sum)
#result1的结果集
[1]  12  12   30
#c(3)数据集的结果
result2<- apply(new.array, c(3), sum)
#result2的结果集
[1] 27  27

#这个运行结果我理解了好久,根据数据单纯的理解为 c(1) 为跨行计算;
c(2) 为跨列计算;
c(3) 为整体计算;
这个运行结果我感觉太迷惑了,我实在是理解不了,目前只能这样理解,希望大神们能略指点一二。

7. 线性回归

参考如下:

线性回归的数学公式为:y= ax+b。
  以下是所使用的参数的描述 - 

    y是响应变量。

    x是预测变量。

    a和b被称为系数常数。

使用R语言中的lm()函数创建关系模型。
     lm()函数:此函数是创建预测变量与响应变量之间的关系模型。
     lm()的基本语法:
     lm(formula,data)
        以下是所使用的参数模型説明
           formula:公式是表示x和y之间的关系符号。
           data:数据是应用公式的向量。

创建关系模型并获取系数:
   lm(y~ x)
   以下是语法的説明并扩展:
     r语言中~运算符的含义:
       用在回归模型中lm(y~ x1+x2),~右边为自变量,左边为因变量。
       用在箱线图中barpolt(y~ x1),表示将x1视作分组变量,分组输出y的箱线图。
   其中:
       lm(y ~ x ) 表示有截距的线性回归模型。
       lm(y ~ x +1) 表示有截距的线性回归模型。
       lm(x+0)lm(y ~ x -1) :表示过原点的线性回归。
       lm(y ~ -1)-1是指没有截距项。
下图中:
     Coefficients()函数是输出模型的参数估计值。
     Intercept:指的是截距
     x对应的是系数。
    对于一元线性回归方程y=ax+b来说,Intercept对应的值便是b的值,x对应的值便是a的值。
   

lm(y ~ x)的运行结果:
在这里插入图片描述
lm(y ~ x +1)的运行结果
在这里插入图片描述
lm(y ~ x -1)的运行结果
在这里插入图片描述
lm(y ~ -1)的运行结果
在这里插入图片描述


总结

目前关于R语言,我学习到了逻辑回归,这篇文章就是我自己的随笔记录,毕竟官网上这些都有,应该帮不到大家。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐