Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >R:计算具有重叠组的群with均值

R:计算具有重叠组的群with均值
EN

Stack Overflow用户
提问于 2022-05-18 00:27:28
回答 5查看 107关注 0票数 3

我有下表提供了样本数据:

代码语言:javascript
运行
AI代码解释
复制
set.seed(10)
dat <- data.frame(grp1 = sample(c(0, 1), size = 5, replace = TRUE),
                   grp2 = sample(c(0, 1), size = 5, replace = TRUE),
                   grp3 = sample(c(0, 1), size = 5, replace = TRUE),
                   value = round(runif(5, min = 0, max = 10), 0) )
dat
  grp1 grp2 grp3 value
1    0    0    0     4
2    0    1    1     1
3    1    1    0     3
4    1    0    0     4
5    1    0    1     8

但最后,我需要一条这样的老虎:

代码语言:javascript
运行
AI代码解释
复制
group              mean
-----------------------
grp1                5.0    
grp2                2.0
grp3                4.5

通常,我会做一个pivot_longer(cols = starts_with("grp")),这样我就可以轻松地group_by(name)和计算groupwise意味着使用summarise(mean = mean(value, na.rm=TRUE))。但在这里,我的问题是,这5个元素中的每个元素都可以属于多个组(grp1、grp2、grp3),因此组之间存在一些重叠。我天真的尝试是分别计算每个组的均值,然后再对它们进行rbind()。但是随着组数的增加,这变得很烦人,所以我正在寻找一种方法来实现这个自动化。

EN

回答 5

Stack Overflow用户

发布于 2022-05-18 00:37:43

一个想法可以是,

代码语言:javascript
运行
AI代码解释
复制
library(dplyr)
library(tidyr)

dat %>% 
 pivot_longer(grp1:grp3, names_repair = 'unique') %>% 
 filter(value...3 == 1) %>% 
 group_by(name) %>% 
 summarise(means = mean(value...1))

New names:
* value -> value...1
* value -> value...3
# A tibble: 3 x 2
  name             means
  <chr>             <dbl>
1 grp1                5  
2 grp2                2  
3 grp3                4.5
票数 4
EN

Stack Overflow用户

发布于 2022-05-18 00:39:23

这里有一个选择。该解决方案主要基于based。最后,我只使用dplyr创建了一个dplyr

代码语言:javascript
运行
AI代码解释
复制
library(dplyr)

dat2 <- dat[, -ncol(dat)] * dat[, ncol(dat)]

dat3 <- sapply(dat2, function(x) mean(x[x != 0]))

dat4 <- tibble(
  group = names(dat3),
  mean = dat3
)

dat4
# # A tibble: 3 x 2
#   group  mean
#   <chr> <dbl>
# 1 grp1    5  
# 2 grp2    2  
# 3 grp3    4.5
票数 4
EN

Stack Overflow用户

发布于 2022-05-18 00:53:33

代码语言:javascript
运行
AI代码解释
复制
colSums(dat$value * dat[-ncol(dat)]) / colSums(dat[-ncol(dat)])
data.frame(grp = names(d), mean = unname(d))

#   grp mean
#1 grp1  5.0
#2 grp2  2.0
#3 grp3  4.5
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72285652

复制
相关文章
[1207]ImportError:无法导入名称“ RandomizedLogisticRegression”
ImportError:无法导入名称“ RandomizedLogisticRegression”
周小董
2023/10/10
4530
[1207]ImportError:无法导入名称“ RandomizedLogisticRegression”
ImportError:无法导入名称“ RandomizedLogisticRegression”
周小董
2023/10/10
4480
FastDFS依赖无法导入
FastDFS依赖无法导入 fastdfs-client-java 导入爆红 <!-- FastDFS--> <dependency> <groupId>org.csource</groupId> <artifactId>fastdfs-client-java</artifactId> <version>1.29-SNAPSHOT</version> </dependency> 解决方法 1.先从 github 上拉取下来 fastdfs-client-java 项目 gi
张小驰出没
2021/12/06
1.2K0
FastDFS依赖无法导入
@EnableConfigServer 注解无法导入
最近构建springboot项目,用到了该注解一直无法导入,一开始怀疑是家里网络问题,或者版本原因,后来排查到了原因所在
全栈程序员站长
2021/04/07
1.3K0
PyCaret 成功解决无法从‘sklearn.model_selection._search‘导入名称“_check_param_grid”
这是因为在 sktime 依赖项中使用了来自 sklearn 的私有方法。由于 sklearn 更新为 1.1.0,这个私有方法被删除/移动,因此它正在崩溃。sktime 团队正在努力解决这个问题。同时,您可以通过强制安装 sklearn 1.0.2 来修复此问题。
叶庭云
2022/06/25
1.3K0
PyCaret 成功解决无法从‘sklearn.model_selection._search‘导入名称“_check_param_grid”
LINUX下gdb无法debug,提示ImportError: No module named 'libstdcxx'
Ubuntu下使用gdb调试C++程序,提示:ImportError: No module named ‘libstdcxx’。貌似CentOS没有这样的问题。
卡尔曼和玻尔兹曼谁曼
2019/01/22
2.3K0
如何批量导入名称没有规律的图片
大家在使用条码标签软件制作标签时,会遇到批量导入图片的情况,比如制作产品标签时需要放上产品图片,工作证或者学生证要放上证件照片,而且图片和内容要一一对应,不能搞错。图片一般都按照有规律的序列号命名,但是也有时没有规律,比如证件照片可能是按照姓名来命名的。下面我们就用一个例子详细介绍如何批量导入这样的图片。
神奇像素科技
2021/12/17
1.2K0
如何批量导入名称没有规律的图片
Python导入自定义模块ImportError: No module named 'xxx'问题
Python导入自定义模块ImportError: No module named 'xxx'问题
芥末鱿鱼
2022/05/05
2.1K0
python3无法导入cPickle
python3中cPickle模块已经更名为_pickle,所以在python3中导入时可以使用:
周小董
2019/03/25
2.5K0
python ImportError:
 >>> import paramiko Traceback (most recent call last): File "<stdin>", line 1, in <module> python ImportError: No module named paramiko 模块没有安装 接下来安装 root@scpman:~# apt-cache search python* |grep paramiko python-paramiko - Make ssh v2 connections with Python apt-get install python-paramiko root@scpman:~# python Python 2.6.6 (r266:84292, Dec 26 2010, 22:31:48) [GCC 4.4.5] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import paramiko /usr/lib/python2.6/dist-packages/Crypto/Util/randpool.py:40: RandomPool_DeprecationWarning: This application uses RandomPool, which is BROKEN in older releases. See http://www.pycrypto.org/randpool-broken RandomPool_DeprecationWarning) >>> import paramiko >>> >>> print "www.scpman.com" www.scpman.com >>> 现在好用了
py3study
2020/01/06
5440
Crontab和sudo中无法使用TensorFlow ImportError libcublas.so.9.0
最近因为特殊的原因重新安装了python,但是引发了一个很严重的问题——TensorFlow不好使了。
用户1154259
2019/01/03
1.6K0
如何将文件名称批量导入excel
不给赞赏的话给个赞或者关注下公众号TungHsu吧,不会让你失望的,好玩的数据,免费的软件,学习资料和方法。
用户1315847
2018/07/26
4.7K0
如何将文件名称批量导入excel
条码软件如何批量导入名称没有规律的图片
目前在很多标签上都有这样或那样的图片,比如产品标签上的产品图片,工作证学生证等证件上面的证件照片,都需要准确无误的打印在相应的证件上,下面我们就来详细看一下图片名称没有规律的情况下如何批量导入图片:
中琅条码软件
2019/10/10
9180
条码软件如何批量导入名称没有规律的图片
ImportError: No modu
报错:ImportError: No module named bs4 我的Python版本 python --version python 2.7.5 按照网上方法尝试安装BeautifulSoup无果,BeautifulSoup据说能在python2的版本很好兼容,在python3版本兼容不是太好。 yum install BeautifulSoup     (不可行) yum install bs4               (不可行) 正确解决方法 yum install python-beautifulsoup 启发 rpm -qa|grep python可以看到python许多兼容库 安装的版本是 python-BeautifulSoup-3.2.1-7.el7.noarch 使用from bs4 import BeautifulSoup任然报错 使用import BeautifulSoup不报错
py3study
2020/01/08
3690
eclipse无法解析导入 java.util
eclipse无法解析导入 java.util是因为jre配置错误。 1、点击需要导入jar的项目,右击项目属性(properties),进入到如下图界面: 2、选择Java Build Path选项
庞小明
2018/03/07
2.8K0
eclipse无法解析导入 java.util
ImportError: No mod
  File "/usr/local/lib/python2.7/sqlite3/__init__.py", line 24, in <module>
py3study
2020/01/08
6370
Java-解决无法导入项目
用Eclipse导入项目(他人项目或者从网上下载的项目)有时会提示No projects are found to import的信息,从而Eclipse无法导入该项目。
wangmcn
2022/07/25
2.1K0
Java-解决无法导入项目
Tensorflow 源码安装成功,导入报错 ImportError: cannot import name 'build_info'
ImportError: cannot import name ‘build_info’
用户1148525
2019/05/26
4.6K0
java中无法解析为类型_java无法解析导入的包
.odt文件是openoffice软件产生的文档格式,可以直接用office打开,这其实就是一个压缩包,可以使用解压软件打开,里面有一个content.xml文件,这个文件内有<text:p>标签,标签内就是展示出来的内容。
全栈程序员站长
2022/10/28
4.9K0
Python中ImportError:
Python脚本在编译的时候,经常会遇到ImportError: No module named *** 的错误 错误提示: ImportError: No module named request 问题分析: 原因是Python中有些模块未导入。 解决方法: 检查 from *** import *** 中模块名称是否有错误,如果没有错,就通过命令行 pip install *** 下载该模块,如果安装不成功,可以到http://www.lfd.uci.edu/~gohlke/pythonlibs/ 搜索下载。
py3study
2020/01/13
1.3K0

相似问题

ImportError:无法导入名称_aligners [ImportError]

05

ImportError:无法导入名称

54

ImportError:无法导入名称

23

ImportError:无法导入名称-

24

ImportError:无法导入名称

42
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文