求一道R语言的题目解答~关于function()的~

Python013

求一道R语言的题目解答~关于function()的~,第1张

fun<-function(n){

none=0

over=0

sum=0

for(i in 1:1000){

A=1:n #代表1到n号人

B=1:n #代表1到n号帽

num=0#有num个人得到自己的帽子

max=n

for(j in 1:n-1){

rand=round(runif(2,min=1,max=max)) #产生2个随机数,取整

people=rand[1]

hat=rand[2]

if(A[people]==B[hat]){

num=num+1

}

A<-A[-people] #删除走的人

B<-B[-hat] #删除掉已拿走的帽子

max=max-1 #随机数最大值减一

}

if(num==0)none=none+1

if(num>0)over=over+1

sum=sum+num/n

}

c(

over/1000, #至少有1个人拿到了自己帽子的概率

none/1000, #没有一个人拿到自己帽子的概率

sum/1000 #得到自己帽子的概率

您好,最近初学R语言,在R语言读入EXCEL数据格式文件的问题上遇到了困难,经过在网上搜索解决了这一问题,下面归纳几种方法,供大家分享:

第一:R中读取excel文件中的数据的路径

假定在您的电脑有一个excel文件,原始的文件路径是:D:\work\data\1

如果直接把这个路径拷贝到R中,就会出现错误,原因是:

\是escape character(转义符),\\才是真正的\字符,或者用/

因此,在R中有两种方法读取该路径:

1:在R中输入一下路径:D:\\work\\data\\1

2:在R中输入一下路径:D:\\work\\data\\1

第二:R中读取excel文件中的数据的方法:

read.table(),read.csv(),read.delim()直接读取EXCEl文件时,都会遇到一下问题:“在读取‘.xls’的TableHeader时遇到不完全的最后一行”。解决的方法有以下几种:假如文件1.1中是一个6乘以2的矩阵,元素为:

123

224

325

426

527

628

方法1:xls另存为csv格式然后用read.csv:

具体过程如下:

>data<-read.csv("D:\\work\\data\\1.csv")

>data

X1 X23

1 2 24

2 3 25

3 4 26

4 5 27

5 6 28

>data<-read.csv("D:\\work\\data\\1.csv",header = F)

>data

V1V2

1 1 23333

2 224

3 325

4 426

5 527

6 628

>data<-read.csv("D:\\work\\data\\1.csv",header = T)

>data

X1 X23333

1 2 24

2 3 25

3 4 26

4 5 27

5 6 28

也就是说header = T(TURE)是默认的状态,在这默认状态下,输出的data矩阵是一个5乘以2的矩阵,第一行作为了data的名字,如果header = F(FALSE),则会现实原始的矩阵结果。