楼主: winniewang2222
10877 22

[问答] 求助:排序以及index number 或row name [推广有奖]

11
winniewang2222 发表于 2014-4-2 20:41:13
ywh19860616 发表于 2014-4-2 20:34
是的,$符号表示的意思就是取变量。
比如data为一个数据框,里面有变量x1,x2,那么要取出x2,
用data$ ...
多谢回复!
我的问题有点复杂,简化来说是这样的:
我的程序需要用到两个数据,第一个数据有N=300,第二个数据N=500。
现在得从第二个数据中随机抽300个点,每次抽取后,开始跑程序,如将第一个数据的均值和第二个抽出的数据的均值相加。
重复250次后,再取个均值。
世上万事,不过是一懒二拖三不读书。

12
winniewang2222 发表于 2014-4-2 20:43:23
ywh19860616 发表于 2014-4-2 20:34
是的,$符号表示的意思就是取变量。
比如data为一个数据框,里面有变量x1,x2,那么要取出x2,
用data$ ...
这个是从x里抽100个点,可重复抽取,这样的意思对么
世上万事,不过是一懒二拖三不读书。

13
ywh19860616 发表于 2014-4-2 20:45:57
winniewang2222 发表于 2014-4-2 20:43
这个是从x里抽100个点,可重复抽取,这样的意思对么
是的
sample(x,100,replace=TRUE)表示从x中抽取100个数据,且为可放回抽样。
如果你要不放回,可以设置为replace=FALSE。

你的问题应该是一样的吧,那分别对两个数据框进行抽样就行。
已有 1 人评分学术水平 信用等级 收起 理由
winniewang2222 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  信用等级 + 1   查看全部评分

一份耕耘,一份收获。

14
winniewang2222 发表于 2014-4-2 20:48:12
ywh19860616 发表于 2014-4-2 20:45
是的
sample(x,100,replace=TRUE)表示从x中抽取100个数据,且为可放回抽样。
如果你要不放回,可以设置 ...
那如何编写重复200次呢
for (i in 1:200) 这样么,但是抽样并没有i呀
世上万事,不过是一懒二拖三不读书。

15
ywh19860616 发表于 2014-4-2 21:17:49
winniewang2222 发表于 2014-4-2 20:48
那如何编写重复200次呢
for (i in 1:200) 这样么,但是抽样并没有i呀
不懂很清楚你的目的
如果重复多次,可以类似这样
  1. x <- 1:12
  2. bsmean <- matrix(NA,200,1)
  3. for (i in 1:200) {
  4. bsdata <- sample(x,100,replace = TRUE)
  5. bsmean[i,1] <- mean(bsdata)
  6. }
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
winniewang2222 + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

一份耕耘,一份收获。

16
winniewang2222 发表于 2014-4-2 21:27:59
ywh19860616 发表于 2014-4-2 21:17
不懂很清楚你的目的
如果重复多次,可以类似这样
那么如果将mean(bsdata)替换为一个矩阵,每抽一次,产生的新的矩阵就累加到之前的矩阵上,那么bsmean[i,1]会变为什么呢,可以怎样编写呢
世上万事,不过是一懒二拖三不读书。

17
ywh19860616 发表于 2014-4-2 21:35:01
winniewang2222 发表于 2014-4-2 21:27
那么如果将mean(bsdata)替换为一个矩阵,每抽一次,产生的新的矩阵就累加到之前的矩阵上,那么bsmean会变 ...
根据自己的需要,自己重新设定bsmean <- matrix(NA,200,1)
我这里只需要存贮200个,所以我就把矩阵设置为200行1列的。

已有 1 人评分学术水平 信用等级 收起 理由
winniewang2222 + 1 + 1 观点有启发

总评分: 学术水平 + 1  信用等级 + 1   查看全部评分

一份耕耘,一份收获。

18
winniewang2222 发表于 2014-4-2 21:35:19
ywh19860616 发表于 2014-4-2 21:17
不懂很清楚你的目的
如果重复多次,可以类似这样
此外还有个难点,因为数据是由3个变量x,y,z组成,有变量名的,抽样之后怎样保留x,y,z这个变量名(因为之后的function会用到),并且按行进行不放回抽样,抽样后的数据之后也要被用进一个function。

头大..
世上万事,不过是一懒二拖三不读书。

19
winniewang2222 发表于 2014-4-2 21:48:52
ywh19860616 发表于 2014-4-2 21:35
根据自己的需要,自己重新设定bsmean
不知道我表达清楚没,就是想从样本中抽出子样本(含变量名),然后用子样本进行运算,得到的结果是一个3*3的矩阵。
重复200次,将每次所得的矩阵叠加起来(因为最后矩阵的每项会除以抽样次数)
世上万事,不过是一懒二拖三不读书。

20
ywh19860616 发表于 2014-4-2 21:49:14
winniewang2222 发表于 2014-4-2 21:35
此外还有个难点,因为数据是由3个变量x,y,z组成,有变量名的,抽样之后怎样保留x,y,z这个变量名(因为之后 ...
  1. x <- rnorm(100, mean = 0, sd = 1)
  2. y <- rnorm(100, mean = 1, sd = 2)
  3. n <- length(x)
  4. Indices <- seq(1:n)
  5. num <- 200  #Number of bootstrap samples
  6. for (i in 1:num) {         
  7. Ind_sim <- sample(Indices,100,replace = TRUE)
  8. xsim <- x[Ind_sim]         #Construct the x data
  9. ysim <- y[Ind_sim]          #Construct the y data
  10. }
复制代码
可以分开来抽样,你对应修改就可以
已有 1 人评分热心指数 信用等级 收起 理由
winniewang2222 + 1 + 1 热心帮助其他会员

总评分: 热心指数 + 1  信用等级 + 1   查看全部评分

一份耕耘,一份收获。

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

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