gpt4 book ai didi

r - 我如何通过 R Dataframe 中的向量

转载 作者:行者123 更新时间:2023-12-04 11:53:10 26 4
gpt4 key购买 nike

我有一个看起来像这样的数据框

Name   Cricket   Football   Swimming 
A Y Y N
B N Y N
C Y N Y

我想要一个遍历所有列并使用列名称标记每个条目的代码,如下所示:

Name   Cricket   Football   Swimming   Sports
A Y Y N Cricket and Football
B N Y N Football Only
C Y N Y Cricket and Swimming

我有一个使用 ifelse() 的想法,但如果数据帧的列数增加并且我需要一些动态的东西,我不需要每次都改变,那会很乏味。

请帮忙!!

最佳答案

一个选项是将数据收集为“长”格式,过滤带有“Y”的行,按“名称”分组,将元素粘贴到“key' (str_c) 和 left_join 与原始数据集

library(tidyverse)
df1 %>%
gather(key, val, -Name) %>%
filter(val == 'Y') %>%
group_by(Name) %>%
summarise(Sports = str_c(key, collapse= ' and ')) %>%
left_join(df1) %>%
select(names(df1), "Sports")
# A tibble: 3 x 5
# Name Cricket Football Swimming Sports
# <chr> <chr> <chr> <chr> <chr>
#1 A Y Y N Cricket and Football
#2 B N Y N Football
#3 C Y N Y Cricket and Swimming

数据

df1 <- structure(list(Name = c("A", "B", "C"), Cricket = c("Y", "N", 
"Y"), Football = c("Y", "Y", "N"), Swimming = c("N", "N", "Y"
)), class = "data.frame", row.names = c(NA, -3L))

关于r - 我如何通过 R Dataframe 中的向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56259983/

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