gpt4 book ai didi

r - 在 `dplyr` 输出中添加行

转载 作者:行者123 更新时间:2023-12-04 10:28:15 25 4
gpt4 key购买 nike

在传统 plyr , 返回的行会自动添加到输出中,即使它们超过了该分组的输入行数:

set.seed(1)
dat <- data.frame(x=runif(10),g=rep(letters[1:5],each=2))
> ddply( dat, .(g), function(df) df[c(1,1,1,2),] )
x g
1 0.26550866 a
2 0.26550866 a
3 0.26550866 a
4 0.37212390 a
5 0.57285336 b
6 0.57285336 b
7 0.57285336 b
8 0.90820779 b
9 0.20168193 c
10 0.20168193 c
11 0.20168193 c
12 0.89838968 c
13 0.94467527 d
14 0.94467527 d
15 0.94467527 d
16 0.66079779 d
17 0.62911404 e
18 0.62911404 e
19 0.62911404 e
20 0.06178627 e

我不知道如何在 dplyr 中做同样的事情.一些尝试:
dat %>% group_by(g) %>% summarise( xbar = mean(x) )

> dat %>% group_by(g) %>% summarise( xbar = runif(3) )
Error: expecting a single value

# Getting creative...

> dat %>% group_by(g) %>% function(x) x[c(1,1,1,2),]

# Nope.

我该怎么做呢?

我遇到的具体用例是拆分 \n -分隔文本字段并使其“长”,但我使用 ddply 的此功能一直用于许多目的。

最佳答案

尝试这个:

 dat %>% 
group_by( g ) %>%
do( .[c(1,1,1,2), ] ) %>%
ungroup()

关于r - 在 `dplyr` 输出中添加行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23621332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com