Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 创建一个随机选择行-循环方式的新数据帧_R_Function_Dataframe_Subset_Random Sample - Fatal编程技术网

R 创建一个随机选择行-循环方式的新数据帧

R 创建一个随机选择行-循环方式的新数据帧,r,function,dataframe,subset,random-sample,R,Function,Dataframe,Subset,Random Sample,问题: set.seed[25] beta<-data.frame() net.row<-function(n=50){ netcol=sample(1:nrow(hlth),size=n ,replace=TRUE) rNames <- row.names(hlth) subset(hlth,rNames%in%netrow,select=c(25:49)) colMeans(s1,na.rm=TRUE,dims=1) } beta$net.row=repli

问题:

set.seed[25]
beta<-data.frame()

net.row<-function(n=50){
 netcol=sample(1:nrow(hlth),size=n ,replace=TRUE)
 rNames <- row.names(hlth)
 subset(hlth,rNames%in%netrow,select=c(25:49))
 colMeans(s1,na.rm=TRUE,dims=1)
 }

 beta$net.row=replicate(1000,net.row()); net.row
我有一个data.frame(hlth),它由49个向量组成——数字(25:49)和因子(1:24)的混合体。我尝试随机选择50行,然后仅计算数字列的列平均值(删除其他值),然后将随机行平均值放入新的data.frame(beta)中。然后我想重复这个过程1000次

我尝试过这个过程,但是返回的值是相同的,新的方法不会进入新的data.frame

这里是一些data.frame(hlth)的行和列。

DateIn adgadj性医疗收费pwtfc
2006年1月1日3.033310转向0.00 675.1151
1992年1月10日3.388245转向2540.33640.2261
1995年10月1日3.550847转向572.78 607.6200
1/10/1996 2.893707小母牛549.42 425.5217
1996年10月1日3.647233 STEER 669.18 403.8238

我迄今为止使用的代码:

set.seed[25]
beta<-data.frame()

net.row<-function(n=50){
 netcol=sample(1:nrow(hlth),size=n ,replace=TRUE)
 rNames <- row.names(hlth)
 subset(hlth,rNames%in%netrow,select=c(25:49))
 colMeans(s1,na.rm=TRUE,dims=1)
 }

 beta$net.row=replicate(1000,net.row()); net.row
set.seed[25]
beta只是添加到我的评论中(并首先粘贴):

netcol=sample(1:nrow(hlth),size=n,replace=TRUE)
应该是由
netrow=…
引起的,错误是一个范围问题-R试图对函数
beta
进行子集划分,可能是因为它无法在您定义的
data.frame
中找到
netRowMeans
,转到全局环境并在那里抛出一个错误

还有一些其他的事情。您没有将
子集(hlth,rNames%in%netrow,select=c(25:49))
分配给变量,我认为您的意思是分配给
s1
,因此
colMeans
可能正在您在全局环境中设置的某个对象上运行

如果您希望以这种方式将变量直接传递到数据帧
beta
,则必须使用正确的列数和行数初始化
beta
——该列表示您传递的将是
(1 x 25)
的向量,因此无法放入单个列中。使用
25列和
1000行初始化一个名为
mat
的矩阵(避免与掩盖实际错误消息的作用域错误混淆)可能会更好

编辑:自从我发布这篇文章以来,这个问题被稍微编辑了一下,但大多数观点仍然有效。

netcol=sample(1:nrow(hlth),size=n,replace=TRUE)
应该是由
netrow=…
引起的,错误是一个范围界定问题-R试图对函数
beta
进行子集划分,大概也是这样,因为它无法在您定义的
data.table
中找到
netRowMeans
,所以会转到全局环境并在那里抛出错误。