gpt4 book ai didi

r - 根据存在的数据帧行分配分组变量R

转载 作者:行者123 更新时间:2023-12-02 00:31:44 25 4
gpt4 key购买 nike

我在 R 中有一个这样的列表:

cat1  
cat7
cat10
cat4
frog
dino11
dino12
dino15
rabbit

我需要制作一个如下所示的新数据框:

cat1 frog  
cat7 frog
cat10 frog
cat4 frog
dino11 rabbit
dino12 rabbit
dino15 rabbit

想法?谢谢!

最佳答案

我们根据'v1'中数字的非出现创建一个分组变量,取lag,创建一个新列'v2'作为last 'v1' 的元素,删除每个组的last 行并选择 感兴趣的列

library(tidyverse)
df %>%
group_by(grp = lag(cumsum(grepl("^[^0-9]+$", v1)), default = 0)) %>%
mutate(v2 = last(v1)) %>%
slice(-n()) %>%
ungroup %>%
select(-grp)
# A tibble: 7 x 2
# v1 v2
# <chr> <chr>
#1 cat1 frog
#2 cat7 frog
#3 cat10 frog
#4 cat4 frog
#5 dino11 rabbit
#6 dino12 rabbit
#7 dino15 rabbit

数据

df <- structure(list(v1 = c("cat1", "cat7", "cat10", "cat4", "frog", 
"dino11", "dino12", "dino15", "rabbit")), .Names = "v1",
class = "data.frame", row.names = c(NA, -9L))

关于r - 根据存在的数据帧行分配分组变量R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51599413/

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