gpt4 book ai didi

r - 使用列表中的指定列进行分组和计数

转载 作者:行者123 更新时间:2023-12-01 10:26:45 25 4
gpt4 key购买 nike

我在创建一个函数时遇到了一些困难,该函数将根据列 P 进行分组并计算已保存在列表(例如“list_col”)中的列的所有"is"。我很确定我会使用 apply 系列中的函数,但不确定如何按特定列(在本例中为 Col P)对其进行分组

P <- as.character(c("A", "A", "A", "A", "A", "B", "B", "B", "B", "B"))
a <- as.character(c(NA,"Yes","Yes",NA,NA,NA,"Yes","Yes","Yes",NA))
b <- as.character(c(NA,"Yes",NA,NA,"Yes",NA,"Yes","Yes",NA,NA))
c <- as.character(c(NA,NA,NA,NA,"Yes",NA,"Yes",NA,NA,NA))

df_sample <- as.data.frame(cbind(P, a, b, c))
df_sample

list_col <- c("a","b","c")

理想情况下,我会使用上面的示例数据框寻找以下答案,以及根据“list_col”更改列的下面的答案

P   a   b   c
A 2 2 1
B 3 2 1

任何帮助将不胜感激

最佳答案

这是一个通过dplyr的方法,

library(dplyr)

df_sample %>%
group_by(P) %>%
select(list_col) %>%
summarise_all(funs(sum(. == 'Yes', na.rm = TRUE)))

#Adding missing grouping variables: `P`
# A tibble: 2 x 4
# P a b c
# <fctr> <int> <int> <int>
#1 A 2 2 1
#2 B 3 2 1

关于r - 使用列表中的指定列进行分组和计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47077141/

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