楼主: 北山狼
2232 10

[问答] R程序修改求助 [推广有奖]

  • 3关注
  • 0粉丝

高中生

82%

还不是VIP/贵宾

-

威望
0
论坛币
6 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
496 点
帖子
20
精华
0
在线时间
34 小时
注册时间
2012-4-18
最后登录
2016-7-30

楼主
北山狼 发表于 2016-5-19 09:47:02 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
一次掷6颗6面的骰子,写这样的程序为什么错误:A=as.vector(outer(c(1:6,1:6,1:6,1:6,1:6,1:6,paste))) ,怎么进行修改?谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:R程序 Vector paste past pas 程序

回帖推荐

cheetahfly 发表于8楼  查看完整内容

我猜测你的意思是要建立一个一次丢6个色子的完整样本空间,你原来的表达式错在outer()函数只能一次容纳两个向量作为输入数据,因此,如果按你的思路去做的话,应该是用“递归”的方式组成表达式,比如: 当然这样太繁琐了,容易出错,不符合编程的DRY原则(do not repeat yourself),所以可以改进成: 这个应该达成了你最初想达到的效果,我猜。不过,我个人觉得这样的数据不好用,因为是字符的形式,抽样之后还要再处理数据,比较 ...

沙发
luisluan 发表于 2016-5-19 09:57:30
sample(1:6, size = 6)

藤椅
jinkelazzz 发表于 2016-5-19 10:10:54
sample(1:6, size = 6,replace = T)

板凳
北山狼 发表于 2016-5-19 10:49:58
luisluan 发表于 2016-5-19 09:57
sample(1:6, size = 6)
十分谢谢大神,要是掷5次,每次掷6个骰子,该怎么写?

报纸
北山狼 发表于 2016-5-19 10:51:41
jinkelazzz 发表于 2016-5-19 10:10
sample(1:6, size = 6,replace = T)
十分谢谢大神解答!要是掷5次,每次掷6颗骰子,该怎么写?谢谢!

地板
qoiqpwqr 发表于 2016-5-19 11:59:40
sample(1:6, size = 30, replace = T)

7
北山狼 发表于 2016-5-19 12:51:48
qoiqpwqr 发表于 2016-5-19 11:59
sample(1:6, size = 30, replace = T)
谢谢!一次抛一个骰子,连续抛30次,跟一次抛6个骰子,连续抛5次,这两个事件是不是不一样呢?  如果不一样的话,这样算一次抛6个骰子,连续抛5次,用sample输出的事件名是字符型,应该跟前一种情况输出的事件名不同,该怎么写程序呢?   求大神指点,谢谢!

8
cheetahfly 在职认证  发表于 2016-5-19 16:58:35
我猜测你的意思是要建立一个一次丢6个色子的完整样本空间,你原来的表达式错在outer()函数只能一次容纳两个向量作为输入数据,因此,如果按你的思路去做的话,应该是用“递归”的方式组成表达式,比如:
  1. A <- as.vector(outer(as.vector(outer(......  #表达式有省略,不完整
复制代码
当然这样太繁琐了,容易出错,不符合编程的DRY原则(do not repeat yourself),所以可以改进成:
  1. dices6 <- rep(list(1:6), 6)
  2. sample_space_1 <- as.vector(Reduce(function(x, y) outer(x, y, FUN = paste), dices6))
  3. head(sample_space_1)
  4. [1] "1 1 1 1 1 1" "2 1 1 1 1 1" "3 1 1 1 1 1" "4 1 1 1 1 1" "5 1 1 1 1 1" "6 1 1 1 1 1"
复制代码
这个应该达成了你最初想达到的效果,我猜。不过,我个人觉得这样的数据不好用,因为是字符的形式,抽样之后还要再处理数据,比较不方便。所以推荐用expand.grid()函数,如下:
  1. sample_space_2 <- expand.grid(dices6)
  2. head(sample_space_2)
  3.   Var1 Var2 Var3 Var4 Var5 Var6
  4. 1    1    1    1    1    1    1
  5. 2    2    1    1    1    1    1
  6. 3    3    1    1    1    1    1
  7. 4    4    1    1    1    1    1
  8. 5    5    1    1    1    1    1
  9. 6    6    1    1    1    1    1
复制代码
抽样的时候,对于“一次抛6个骰子,连续抛5次”,抽样为:
  1. sample_space_2[sample(seq_len(nrow(sample_space_2)), 5, replace = T), ]
复制代码
对于“一次抛一个骰子,连续抛30次”,就如其他同学所回答的那样。


9
北山狼 发表于 2016-5-21 09:38:34
cheetahfly 发表于 2016-5-19 16:58
我猜测你的意思是要建立一个一次丢6个色子的完整样本空间,你原来的表达式错在outer()函数只能一次容纳两个 ...
谢谢!谢谢大神指点!

10
北山狼 发表于 2016-5-28 18:52:24
cheetahfly 发表于 2016-5-19 16:58
我猜测你的意思是要建立一个一次丢6个色子的完整样本空间,你原来的表达式错在outer()函数只能一次容纳两个 ...
请求大神帮忙:x>=0&x<=6当x>=0&x<3时,f(x)=3*x+2;当x>3&x<=6时,f(x)=2*x-0.5*x^2
怎么编写程序,画f(x)在x>=0&x<=6上的图形?
谢谢大神!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 13:32