好文档 - 专业文书写作范文服务资料分享网站

R统计软件详细介绍(中文版) 

天下 分享 时间: 加入收藏 我要投稿 点赞

包中提供了到MySQL数据库的接口;RODBC包提供了更为广泛数据库接口的解

决方案—支持所有标准ODBC接口的数据库。通过这种方式,相同的R代码可以方便地应用于不同类型的数据库。

RMySQL

library(RODBC)

2

5

ch

4

经测试,Windows平台上的MicrosoftSQLServer、Access、Oracle、MySQL、PostgreSQL,和Linux平台上的MySQL、Oracle、PostgreSQL、SQLite都有良好的应用案例(详细参考R-data)。

§D数据处理

47.如何删掉缺失值?

6在R中使用NA(notavailable)表示缺失值,要注意R(S)语言中NA同样是一个逻辑值,

x

2

x>3class(x)

故当判断是否相等时不能使用

1

x==NA

来判断缺失值。而是使用函数is.na()来判断是否为缺失值,使用

1

x[!is.na(x)]

删除缺失值。

48.如何将字符串转变为命令执行?

这里用到eval()和parse()函数。首先使用parse()函数将字符串转化为表达式(expression),而后使用eval()函数对表达式求解。

1

x

eval(parse(text=a))49.如何向一个向量追加元素?

3

参考append()函数。

5需要包6R

DBI的支持

共有三个逻辑值TRUE、FALSE、NA

10

x

2

(foo

#expectedresult

可以使用函数subset(select=);或者使用下标:

1

x

new.x1

#row#col

3

5

new.x2

事实上,关于选取特定条件下的数据框数据,subset函数同使用下标效果相同:

iS

2

iris[iS,c(1,3)]

subset(iris,select=c(Sepal.Length,Petal.Length),Species==\)51.如何比较两个数据框是否相同?

比较每个元素是否相同,如果每个元素都相同,那么这两个数据框也相同

1

a1

a2[[3,1]]a2[[8,2]]any(a1!=a2)

#

all(a1

==

a2)

3

any()函数可以返回是值是否至少有一个为真的逻辑值。而数据框中的元素有不相等的情况,则

a1!=a2

将返回至少一个TRUE,那么any()函数将判断为TRUE。同样也可以使用identical()函数。

1

indentical(a1,a2)

如果需要返回两个数据框不相同的位置,可以使用

1

which(a1!=a2,arr.ind=TRUE)

arr.ind参量是arrayindices之意,返回数据框的行列位置。52.我的数据框有相同的行,如何去掉这些行?

参考unique函数。unique函数可以去掉向量、数据框或类似数列的数据中重复的元素。

11

1

x

#

is

more

efficient

3

这里duplicated函数返回了元素是否重复的逻辑值。

53.如何对数列(array)进行维度变换?

使用函数aperm

1

x

;

dim(xt)

xt

3

dim(x)

54.如何删除list中的元素?R中使用NULL表示无效的对象。

1

lst

#

or

lst

$a$b

NULL

3

lst

55.如何对矩阵按行(列)作计算?

使用函数apply()

1

vec=1:20

mat=matrix(vec,ncol=4)vec

cumsum(vec)mat

apply(mat,2,cumsum)apply(mat,1,cumsum)56.如何注掉大段的R脚本

3

5

7

如果你使用支持正则表达式的文本编辑器的话,可以考虑用正则表达式(RegularExpression);或者将大段的代码写入一个*.R文件,如果需要注掉的话,在source(*.R)前加入#即可;还可以使用

1

if(FALSE){somethingpassby}

57.如何对数据框(dataframe)的某列作数学变换?

3

使用transform()函数对其操作,具体参考?transform

12

58.如何求解两组平行向量的极值?pmax()和pmin(),如:

1

x

;;

y

59.如何对不规则数组进行统计分析?

参考tapply():

n

2

table(fac)

tapply(1:n,fac,sum)tapply(1:n,fac,mean)

##

or

reverse

a

list

4

6

to

tapply()的常见于方差分析中对各个组别进行mean、var(sd)的计算。说到概要统计,不得不说另

外一个函数aggregate(),它将tapply()函数对象为向量的限制扩展到了数据框。7

1

attach(warpbreaks)

tapply(breaks,list(wool,tension),mean)aggregate(breaks,list(wool,tension),mean)

##

from

the

help

3

5

aggregate(state.x77,

list(Region=state.region,

Cold=state.x77[,\]>130),

mean)

60.判断数据框的列是否为数字?sapply(dataframe,is.numeric)61.一组数中随机抽取数据?

7

函数sample()

sample(n)sample(x)

sample(x,replace=T)

sample(x,n)

sample(x,n,replace=T)

sample(x,n,replace=T,prob=p)

7当然同样概要统计的表现形式不一样

随机组合1,...,n

随机组合向量x,length(x)>1

解靴带法

非放回的从x中抽取n项放回的从x中抽取n项

以概率p,放回的从x中抽取n项

13

n

2

x

main=\sumsofBernoullivariables\)

4

还可以参考第17页中关于模拟已知分布的随机数据函数,如:

rnorm(100,mean=0,sd=1)

62.如何根据共有的列将两个数据框合并?

我们经常会遇到两个数据框拥有相同的时间或观测值,但这些列却不尽相同。处理的办法就是使用merge(x,y,by.x=,by.y=,all=)函数。

63.如何将数据标准化?

参考scale函数。

1

x

##

onlyonly

centeringscaling

3

n

64.为什么?venum和summary两个函数返回的结果不同?

因为他们对数据描述机理一致,所以有些教材将二者等同,但他们确实有细微差别。

1

>fivenum(c(1,4,6,17,50,51,70,100))[1]

1.025%5.50

5.0503.50

33.5

75%

60.5100.0

100%

>quantile(c(1,4,6,17,50,51,70,100))0%1.00

55.75100.00

3

5

我们看下他们的的定义:分位数是指有百分之多少的数据小于的数值(summary()函数,即使用分

3

位数概念),我们可以看到14,4分位数的定义:

11

1+(length(x)?1),分位数

4433

1+(length(x)?1),分位数

44

而?venum()函数是完全利用中位数概念。

§E数学运算

65.如何做出曲线积分?

R语言使用integrate函数来得到积分结果,如

14

6iz252s0h44x67j2pukt
领取福利

微信扫码领取福利

微信扫码分享