我想从数据帧中获取n = 3行的所有可能样本。我可以使用以下方法获取所有这些行组合:
Combinations <- combn(dim(df)[1], 3)
Combinations[1:10]
[1] 1 2 3 1 2 4 1 2 5 1
我需要获取Combinations
中每3个数字的子集,并将它们用于df
的行号(i,e。第一个是行1 2 3;第二个是1 2 4,依此类推)。
我还需要存储&#39;每个子集执行功能(获取列的总和和平均值并保存row.names)。我正在使用一个列表来存储原始数据帧的所有样本。
这是一个使用sample
的函数示例,该函数可以满足我的需求但不是每种组合。
take_sample = function(dataframe){
df2= dataframe[sample(nrow(dataframe),3),]
lista=list(filas=row.names(df2),
suma=sum(dist(df2)),
coord_mean=apply(df2,2,mean))
return(lista)
}
这是df
structure(list(x = c(4817.5, 4814.5, 4817.5, 8515, 8518, 8543.5,
8549.5, 7236.5, 7242.5, 8024.5, 8017, 5549, 5547, 8857, 8861.5,
8132.5, 8136.5, 9349, 9343, 5914), y = c(4424, 4431.5, 4432,
4482.5, 4484, 4574.5, 4576, 4758, 4759.5, 4772, 4772.5, 4807.5,
4809.5, 4936, 4940, 5177, 5175, 5192.5, 5192.5, 5236)), .Names = c("x",
"y"), row.names = c(1175L, 1176L, 1177L, 1180L, 1181L, 1185L,
1187L, 1203L, 1204L, 1206L, 1207L, 1215L, 1217L, 1227L, 1229L,
1249L, 1250L, 1252L, 1253L, 1257L), class = "data.frame")