【问题标题】:How to use sample_n within a for loop and create dataframe [duplicate]如何在for循环中使用sample_n并创建数据框[重复]
【发布时间】:2019-12-25 08:51:30
【问题描述】:

我收到这个错误

'错误:参数 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 中推荐一些代码?

【问题讨论】:

标签: r sample


【解决方案1】:

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

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

【讨论】:

  • @user11358720 您可以考虑通过单击投票按钮旁边的复选标记来接受答案,以便将其标记为已解决。
猜你喜欢
  • 2021-09-03
  • 1970-01-01
  • 2021-02-12
  • 1970-01-01
  • 1970-01-01
  • 2021-08-15
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多