- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
% map_df(~rbinom(n, 1, prob = .5)) %>% rowwise() %>% muta-6ren">
rc<-1 # the number of red balls
wc<-1 # the number of white balls
red<-rep("Red",rc)
white<-rep("White",wc)
jar<-c(red,white)
nb<-5 ### number of draws
N=10 # Number of experiments
new_data<-matrix(NA,nrow = N,ncol = nb+1)
count_red_new<-matrix(NA,nrow = N,ncol = nb)
red_count<-rep(NA,N)
#### nested loop
for(i in 1:N){
for(j in 1:nb){
new_data[i,j]<-sample(jar,1,replace = T)
if(new_data[i,j]=="Red"){
count_red_new[i,j]=1
}else{
count_red_new[i,j]=0
}
red_count[i]=sum(count_red_new[i,])
new_data[i,nb+1]=red_count[i]
}
}
colnames(new_data)<-c("Draw1","Draw2","Draw3","Draw4","Draw5","Red Ball Count")
new_data<-data.frame(new_data)
#new_data$Red.Ball.Count<-as.integer(new_data$Red.Ball.Count)
new_data
上面的代码用于运行关于在 5 次抽取中拉动红球和白球的实验。本实验进行 10 次迭代。如上所述,我在两者之间使用了一个嵌套循环。如何将 purrr 用于嵌套循环,以便输出可以存储在矩阵或数据框中?
最佳答案
这是使用 map
的一种方法。如果您只有红球和白球,则可以利用 rbinom()
进行平局。假设平局 1 是红球。
library(tidyverse)
nb <- 1:5
n <- 10
nb %>%
set_names(paste0("draw", .)) %>%
map_df(~rbinom(n, 1, prob = .5)) %>%
rowwise() %>%
mutate(red_ball_count = sum(c_across(everything())))
# A tibble: 10 x 6
# Rowwise:
draw1 draw2 draw3 draw4 draw5 red_ball_count
<int> <int> <int> <int> <int> <int>
1 1 1 1 0 0 3
2 0 1 0 0 1 2
3 0 0 0 1 1 2
4 0 0 0 1 1 2
5 1 0 0 0 0 1
6 1 0 1 0 1 3
7 1 0 1 1 1 4
8 0 0 1 0 1 2
9 1 1 0 1 0 3
10 0 1 0 1 1 3
请注意,这在技术上执行了 5 轮 10 次平局而不是 10 轮 5 次平局。如果真要10轮5抽,也是一样的思路,不过需要用t()
转置。
FWIW 这是一个基本的 R 方法:
df <- data.frame(t(replicate(n, rbinom(nb, 1, prob = .5))))
colnames(df) <- gsub("X", "Draw", colnames(df))
df['red_ball_count'] <- rowSums(df)
最后,鉴于伯努利试验中的顺序(通常)无关紧要,请注意您可以通过指定 单独使用
和 rbinom()
获得 red_ball_count
n=10size=5
:
rbinom(n, nb, prob = .5)
关于R 使用 purrr 的多个循环,其中输出是数据表/tibble/矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68504505/
这个问题在这里已经有了答案: Combine a list of data frames into one data frame by row (9 个回答) 去年关闭。 我有一个很大的列表(200.
我想创建一个存储其他任意小标题的小标题列。 我通过以下代码设法做到了这一点,首先使用 nest()在每个内部 tibble 上然后使用 unnest()在外层 library(tibble) libr
我已尽我所能进行搜索,但仍在为我的问题而苦苦挣扎。我正在尝试根据另一个 tibble 的值对 tibble 中的列进行子集化。 更具体地说,我有一些社会经济指标: cname year ccod
我已尽我所能进行搜索,但仍在为我的问题而苦苦挣扎。我正在尝试根据另一个 tibble 的值对 tibble 中的列进行子集化。 更具体地说,我有一些社会经济指标: cname year ccod
我有两个问题,第一个是这个。 input_data # A tibble: 7 × 3 #> Genes Sample1 Sample2 #> #> 1 Ncr1
我有两个 tibbles,ranges 和 sites。第一个包含一组坐标(区域、开始、结束以及其他字符变量),另一个包含一个站点(区域、站点)。我需要获取第二个小标题中第一个小标题中给定范围(行)内
我正在使用 rtweet 包的 get_friends 函数来获取一组焦点用户的 friend 的 user_id 列表谁是从 Twitter 话语的参与者中抽样的。该函数返回一个 tibbles 列
我正在使用 rtweet 包的 get_friends 函数来获取一组焦点用户的 friend 的 user_id 列表谁是从 Twitter 话语的参与者中抽样的。该函数返回一个 tibbles 列
我想在以下代码中生成一个 tibble 列表。 tbl = tibble(id=1:10, a = rnorm(10), b = rnorm(10)) tbl_list = c("a", "b")
我有一个数据框,我需要添加一列以包含对应于现有数据框每一行的 3 个物种。希望下面的例子能说明问题: Site Year Trt A 2016 bowl A
我想用 df 中的 NA 替换 de 列,使用 df2 中的估算值来获得 df3 .我可以使用 left_join 和 coalesce 来做到这一点,但我认为这种方法不能很好地概括。有没有更好的办法
我想用 df 中的 NA 替换 de 列,使用 df2 中的估算值来获得 df3 .我可以使用 left_join 和 coalesce 来做到这一点,但我认为这种方法不能很好地概括。有没有更好的办法
假设我有一个嵌套的 tibble,格式如下: # A tibble: 3 x 3 AccountNumber Tibble1 Tibble2
在之前版本的 tidyr 中,我能够使用 tibble::add_row 将行添加到嵌套 tibble。更新到版本 1.0.0 后出现以下错误: Error: levels.vctrs_list_of
我编写了一个函数,其中一部分将矩阵转换为小标题。这在 tibble 1.4.2 中没有问题,但在 2.0.1 中会导致错误。 导致错误的代码如下 library(tibble) library(mag
我有这个列表列表: regions unnest(country) 在 base R 中,命名列表,并使用 stack : setNames(regions, seq_along(regions
我有一个问题: df % filter(! (x %>% map_lgl(~ sum(str_extract(df$x, .x) == .x, na.rm = TRUE) > 1))) #> # A
为了简化我的数据分析,我需要针对不同的变量和不同的数据组处理不同的统计测试(在该示例中为 shapiro 测试)。目的是不要写 150 次相同的代码。为此,我从我的数据集中创建了一个 tibble,其
我正在尝试通过对多个步骤进行采样来模拟一些数据。 第一步(创建 x)工作正常。 在第二步中,我想根据 x 的值从不同的向量中采样来创建变量 y。 我的代码运行没有错误,但在我试图实现的目标上失败了,因
我有一个像这样的嵌套列表: > ex ex [[1]] [[1]][[1]] [1] "This" "is" "an" "example" "." [[1]][[
我是一名优秀的程序员,十分优秀!