R语言中的matrix(矩阵),list(列表),data.frame(数据框)总结 您所在的位置:网站首页 dataframe转换为列表后怎么提取元素 R语言中的matrix(矩阵),list(列表),data.frame(数据框)总结

R语言中的matrix(矩阵),list(列表),data.frame(数据框)总结

2024-07-11 20:13| 来源: 网络整理| 查看: 265

一、R语言中的矩阵matrix是一个二维的数组array,因此数组array的一些操作它也适用。

①它与array相比,特有的是矩阵的一些运算,例如:

求维度:dim(A)

转置:t(A)

求行列式:det(A)

矩阵相乘:x%*%y

对角运算:diag(A)

求逆:solve(A,b)

求特征值和特征向量:eigen(A)

奇异值分解:svd(A)

②在多维数组中,apply函数可以只针对行或者列进行运算:

> A=matrix(1:6,nrow=2);A      [,1] [,2] [,3] [1,]    1    3    5 [2,]    2    4    6 > apply(A,1,sum) [1]  9 12 > apply(A,2,mean) [1] 1.5 3.5 5.5

第一个是对列求和,第二个是对行求均值。

二、列表list

列表是一种很特别的对象集合,每个元素的类型可以不同,元素本身可以允许是更复杂的数据类型,它的元素也可以是一个列表,(个人认为,与python中的list差不多)比如:

> LST=list(name='louis',wife='lyla',children.no=3,child.ages=c(4,7,12)) > LST $name [1] "louis" $wife [1] "lyla" $children.no [1] 3 $child.ages [1]  4  7 12

下标中取下标:

> LST[[4]][2] [1] 7

取元素:

> LST[["name"]] [1] "louis"

> LST["name"] $name [1] "louis" > LST$name [1] "louis"

列表值的修改:

LST$name="ye"

增加一项家庭收入:

LST$income=c(1980,1600)

总结:在R中,许多函数的返回值都是列表,如求特征值特征向量的函数eigen()、奇异值分解函数svd()和最小二乘函数lsfitUI等。所以list在R中的用处还是很广泛的。

> A      [,1] [,2] [,3] [1,]    4    2    7 [2,]    5    5    5 [3,]    3    6    3

> svd(A) $d [1] 13.450720  4.049131  0.826238 $u            [,1]       [,2]       [,3] [1,] -0.5761545  0.7349027  0.3577205 [2,] -0.6408954 -0.1345924 -0.7557367 [3,] -0.5072465 -0.6646826  0.5485418 $v            [,1]        [,2]       [,3] [1,] -0.5227107  0.06732344 -0.8498477 [2,] -0.5501761 -0.78813250  0.2759590 [3,] -0.6512141  0.61181265  0.4490050

二、数据框data.frame,数据框的主要用途是保存在统计建模的数据,R的统计建模功能都需要以数据框作为输入数据,我们也可以把数据框当成一种矩阵来处理,在使用数据框的变量时候可以用“数据库名$变量名”的记法,同时可以用attach()函数、、

1.函数data.frame()生成数据框,其用法与list()函数相同,各自变量变成数据框的成分,自变量可以命名成为变量名,例如:

> df=data.frame( + Name=c("A","B","C"), + Sex=c("F","F","M"), + Age=c(13,12,11), + Heigh=c(56.5,45.9,39.9)) > df   Name Sex Age Heigh 1    A   F  13  56.5 2    B   F  12  45.9 3    C   M  11  39.9

可以发现data.frame相当于数据库的一个表。列表和数据库可以相互转化。as.data.frame(LST)将列表LST转换为数据框,

2.数据框的引用

> df[1:2,1:2]   Name Sex 1    A   F 2    B   F

3.attach()函数

> df$Weigh=c(123,134,114) > df   Name Sex Age Heigh Weigh 1    A   F  13  56.5   123 2    B   F  12  45.9   134 3    C   M  11  39.9   114

> attach(df) > df$r=Heigh/Weigh

> df   Name Sex Age Heigh Weigh         r 1    A   F  13  56.5   123 0.4593496 2    B   F  12  45.9   134 0.3425373 3    C   M  11  39.9   114 0.3500000 > detach()

3.数据框的编辑edit()

edit(df)会出现一个框图,让你手动填写,非常的方便。

 

 

 

 

 

 

 

 

 

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有