是否有一個purrr::函式可以像我mapply()在下面的呼叫一樣,但輸出要添加到 mydata而不是 a 的列list()?
library(tidyverse)
m=
"
study group outcome
1 1 A
1 1 B
1 2 A
1 2 B
2 1 A
2 1 B
2 2 A
2 2 B
3 1 B
4 1 A
"
data =read.table(text=m,h=T)
set.seed(0)
(mapply(rnorm, n = sapply(group_split(data, study),nrow), mean=1:4*.1))
[[1]]
[1] 1.3629543 -0.2262334 1.4297993 1.3724293
[[2]]
[1] 0.61464143 -1.33995004 -0.72856703 -0.09472045
[[3]]
[1] 0.2942328
[[4]]
[1] 2.804653
uj5u.com熱心網友回復:
可以unlist編。默認情況下mapply是這樣SIMPLIFY = TRUE,但僅當輸出串列元素具有相同時才適用length。在這里,它不是,這就是它給出輸出的原因list
unlist((mapply(rnorm, n = sapply(group_split(data, study),nrow), mean=1:4*.1)))
-輸出
[1] 0.3661374 -0.2767027 2.5413646 -0.6953391 0.1451225 0.4501413 0.8182433 0.0273765 -1.9239003 -0.8636144
在dplyr,我們可以做
library(dplyr)
data %>%
group_by(study) %>%
mutate(new = rnorm(n(), mean = 1:4 * .1)) %>%
ungroup
# A tibble: 10 × 4
study group outcome new
<int> <int> <chr> <dbl>
1 1 1 A 1.36
2 1 1 B -0.126
3 1 2 A 1.63
4 1 2 B 1.67
5 2 1 A 0.515
6 2 1 B -1.34
7 2 2 A -0.629
8 2 2 B 0.105
9 3 1 B 0.0942
10 4 1 A 2.50
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/331166.html
上一篇:按字串向熊貓資料框添加顏色
