小编Nic*_*oot的帖子

与purrr等效的rowwise()do(),现在不推荐使用by_row()?

既然purrr中的by_row()将被弃用,那么新的首选tidyverse实现是什么:

somedata = expand.grid(a=1:3,b=3,c=runif(3))
somedata %>%
  rowwise() %>% do(binom.test(x=.$a,n=.$b,p=.$c) %>% tidy())
Run Code Online (Sandbox Code Playgroud)

看起来好像你可能将每一行嵌套到一个列中,然后使用map(),但我不确定如何进行嵌套操作......再加上它看起来有点模糊.有没有更好的办法?

r dplyr purrr

14
推荐指数
1
解决办法
1856
查看次数

使用expand.grid生成具有指定频率分布的因子组合?

假设我有:

data <- expand.grid(factor1 = c("a","b"),
                    factor2 = c("left","right"),
                    factor3 = c("up","down"))
Run Code Online (Sandbox Code Playgroud)

假设我想从这个数据帧中复制行,这样我就可以定义每个因子的频率分布,并且尽可能少地复制每一行以满足该分布.例如,如果我将"factor1"的频率定义为(.5,.5),将"factor2"定义为(.25,.75),将"factor3"定义为(.4,.6),则我的数据框必须有2 X 4 X 5 = 40总行数.我可以做这个:

data2 <- expand.grid(factor1 = c("a","b"),
                     factor2 = c("left",rep("right",3)),
                     factor3 = c(rep("up",2),rep("down",3)))
Run Code Online (Sandbox Code Playgroud)

但这只有在我提前知道频率的情况下才有效 - 即便如此,从(.4,.6)到c(rep("a",2),rep("b",3))手工这样的传统似乎也不够优雅.有什么更好的方法呢?

r

5
推荐指数
0
解决办法
350
查看次数

扩展数据框内的数据帧

我有一个具有以下结构的数据框:

   language  subID sessionID                  rdm
      (chr) (fctr)    (fctr)                (chr)
1     Dutch  13602     13257 <data.frame [676,3]>
2     Dutch  13602    125354 <data.frame [676,3]>
3     Dutch  17790     19308 <data.frame [676,3]>
4     Dutch  37016     38221 <data.frame [676,3]>
5     Dutch  46830     47890 <data.frame [676,3]>
Run Code Online (Sandbox Code Playgroud)

我想将这个数据帧转换为676*n×6的数据帧 - 换句话说,取数据帧的rdm列并将其扩展到更大的数据帧.

能够做这样的事情:

bind_rows(data_frame$rdm,.id=c(data_frame$sessionID,data_frame$subID,data_frame$language))
Run Code Online (Sandbox Code Playgroud)

但是,显然,".id"属性不起作用.我如何获得我追求的数据框?

r dplyr

2
推荐指数
1
解决办法
370
查看次数

标签 统计

r ×3

dplyr ×2

purrr ×1