对R

时间:2016-07-28 13:35:46

标签: r combinations subset sample

我想从数据帧中获取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")

0 个答案:

没有答案