1. 用R自带的函数进行数据框计算
首先得保证数据是数据框格式,不是的话用as.data.frame函数转换格式。WorldPhones初始是矩阵类型数据文件。
图1 1951-1961年全球七大洲电话使用次数
1.1 求和
1.1.1 行(row)求和
worldphones<-as.data.frame(WorldPhones)#格式转换
rs<-rowSums(worldphones)
图2 输出结果
若想将行所求的和添加到数据框中,则可以使用cbind函数
Total<-rs
total<-cbind(worldphones,Total)#在原始数据集上添加Total列
图3 添加后的结果
1.1.2 列(col)求和
同上,不再赘述
1.2 求均值
1.2.1 列(col)求均值
worldphones<-as.data.frame(WorldPhones)#格式转换
cm<-colMeans(worldphones)
Mean<-cm
rbind(total,Mean)
图4 结果出现错误
2. 用apply函数进行矩阵计算
图5 apply各种函数apply函数适用于矩阵或者列表,主要参数有三,第一个是数据库名称,第二个MARGIN是指明行还是列,1则指行,2则指列。第三个FUN参数是指明处理数据的函数,有sum,mean,var,log等。函数运用后,结果返回的数据类型仍然是矩阵。
apply(WorldPhones,MARGIN=1,FUN=sum)#求行之和
apply(WorldPhones,MARGIN=2,FUN=mean)#求列均值
apply(WorldPhones,MARGIN=2,FUN=var)#求列方差
apply(WorldPhones,MARGIN=2,FUN=log)求列对数
图6 用apply函数计算
3. 用lapply函数进行列表计算
面对一些列表数据时,则无法使用apply函数,不过也都有对应的函数,例如列表数据集state.center可以用lapply函数。函数运用后,结果返回的数据类型仍然是列表。
lapply(state.center,FUN=length)#返回结果是列表
4. 用sapply函数进行向量计算
sapply(state.center,FUN=length)#返回结果是向量
4. 用tapply函数进行因子计算
图7 tapply函数用法用state.name和state.division数据库来统计美国每个大区中包含多少个州,这时候就可以把state.division看作因子,用tapply函数计算
state.name#美国五十个州的名字
state.division#美国五十个州所处的地区
tapply(state.name,state.division,FUN=length)#将division作为因子,计算元素处于不同地区(因子)的个数
图8 tapply计算结果
网友评论