【发布时间】:2015-10-27 03:50:53
【问题描述】:
问题:
我有一个由 49 个向量组成的 data.frame (hlth) - 数字 (25:49) 和因子 (1:24) 的混合。我正在尝试随机选择 50 行,然后仅计算数字列的列均值(删除其他值),然后将随机行均值放入新的 data.frame(测试版)中。然后我想将这个过程迭代 1000 次。
我已经尝试过这个过程,但是返回的值是相同的,新的手段不会进入新的 data.frame
这是data.frame(hlth)的几行和几列
DateIn adgadj Sex VetMedCharges pwtfc
1/01/2006 3.033310 STEER 0.00 675.1151
1/10/1992 3.388245 STEER 2540.33 640.2261
1/10/1995 3.550847 STEER 572.78 607.6200
1/10/1996 2.893707 HEIFER 549.42 425.5217
1/10/1996 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
我发现的两个问题是:
1) 每次迭代都返回相同的值
2) “结束时出错:‘闭包’类型的对象不是子集的”当 beta$netrow 时
任何建议将不胜感激!!!
【问题讨论】:
-
netcol=sample(1:nrow(hlth),size=n ,replace=TRUE)应该是netrow = ...并且错误是一个范围界定问题 - R 试图子集函数beta,可能又是一次,因为它在data.table你已经定义,移动到全局环境并在那里抛出一个错误。
标签: r function dataframe subset random-sample