如何在for循环中使用sample_n并创建数据框

时间:2019-08-20 07:21:38

标签: r sample

我收到此错误

  

“错误:参数1必须具有名称”

有人可以帮忙吗?

temp <- data.frame()
for (i in 2:3){
temp <- rbind(temp,without_first %>% filter(sz==i) %>% samp(i,replace=TRUE))
}

数据结构

id     timepoint  size
1001   time30      2
1001   time60      2
1001   time90      2
1002   time60      1
1002  time90       1

我试图随机选择2个观察值id = 1001、1个观察值id = 1002等,我在数据集中有很多这样的主题。 我上面给出的代码不起作用。有人可以在R中建议代码吗?

我也尝试过

data<-%>% group_by(id)%>%sample_n(size,replace=TRUE)

不起作用。请在R中建议一些代码?

1 个答案:

答案 0 :(得分:1)

无需使用for循环。您可以为每个size使用sample_n列中的first值在size中直接指定id

library(dplyr)

df %>%
  group_by(id) %>%
  sample_n(first(size))


#    id timepoint  size
#  <int> <fct>     <int>
#1  1001 time60        2
#2  1001 time30        2
#3  1002 time90        1