首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将聚合变量添加到R中的现有数据集中

如何将聚合变量添加到R中的现有数据集中
EN

Stack Overflow用户
提问于 2017-04-06 01:09:59
回答 1查看 37关注 0票数 0

如何使用aggregateby命令将变量添加到数据集中?例如,我有:

代码语言:javascript
复制
num x1  
1 1  
1 0  
2 0  
2 0 

我希望创建一个变量来标识每个num为1的变量,例如:

代码语言:javascript
复制
num x1 x2  
1 1 1  
1 0 1  
2 0 0  
2 0 0

代码语言:javascript
复制
num x1 x2  
1 1 TRUE  
1 0 TRUE  
2 0 FALSE  
2 0 FALSE 

我试着用

代码语言:javascript
复制
df$x2 <- aggregate(df$x1, by = list(df$num), FUN = sum)

但是我得到了一个错误,说替换数据的行数与数据的行数不同。有人能帮上忙吗?

EN

回答 1

Stack Overflow用户

发布于 2017-04-06 01:11:06

这可以通过使用'num‘分组并检查'x'1中是否有any 1元素来完成。base R中的ave代替了aggregate

代码语言:javascript
复制
df1$x2 <- with(df1, ave(x1==1, num, FUN = any))
df1$x2  
#[1] 1 1 0 0

或者使用dplyr,我们按'num‘分组,并通过检查any 'x1’是否等于1来创建'x2‘。如果我们没有使用as.integer包装以转换为二进制,则它将是一个逻辑向量

代码语言:javascript
复制
library(dplyr)
df1 %>%
   group_by(num) %>%
   mutate(x2 = as.integer(any(x1==1)))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43237539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档