我有一个数据框,由分布在15个不同ID中的近50000行组成(每个ID有数千个观察值).数据框看起来像:

        ID  Year    Temp    ph
1       P1  1996    11.3    6.80
2       P1  1996    9.7     6.90
3       P1  1997    9.8     7.10
...
2000    P2  1997    10.5    6.90
2001    P2  1997    9.9     7.00
2002    P2  1997    10.0    6.93

我想 for each ID取500个随机行(所以P1取500,P2取500,…)并创建一个新的df.我试着:

new_df<-df[df$ID %in% sample(unique(dfID),500),]

但它随机抽取一个ID,而我需要 for each ID随机抽取500行.

推荐答案

试试这个:

library(plyr)
ddply(df,.(ID),function(x) x[sample(nrow(x),500),])

R相关问答推荐

R绑定具有不同时间观察的两个数据帧

在水平条形图中zoom x_轴

在特定列上滞后n行,同时扩展框架的长度

使用ggplot将平滑线添加到条形图

如何使用R对每组变量进行随机化?

二维样条,严格以一个参数递增

如果第一个列表中的元素等于第二个列表的元素,则替换为第三个列表的元素

错误:非常长的R行中出现意外符号

S用事件解决物质平衡问题

在R gggplot2中是否有一种方法将绘图轴转换成连续的 colored颜色 尺度?

您是否可以折叠R中的重复行,同时保留基于所选列的值?

从多个线性回归模型中提取系数

在GG图中绘制射线的自动程序

从非重叠(非滚动)周期中的最新数据向后开窗并在周期内计数

如果COLSUM为>;0,则COLNAME为向量

在R中,如何从一系列具有索引名的变量快速创建数据帧?

以不同于绘图中元素的方式对GG图图例进行排序

有没有办法将基于每个值中出现的两个关键字或短语的字符串向量重新编码为具有这两个值的新向量?

如何构建一个for循环来循环处理动物ID?

自定义交互作用图的标签