首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我如何在R中写出一个按多个标准分组的逗号?

我如何在R中写出一个按多个标准分组的逗号?
EN

Stack Overflow用户
提问于 2021-04-15 10:59:58
回答 2查看 20关注 0票数 0

我正在寻找一个函数,在这个函数中,我可以将我的数据分类为五个不同的行业,给出它们的SIC代码。

代码语言:javascript
运行
复制
Permno  SIC  Industry
1       854 
2       977 
3       549 
4       1231    
5       3295    
6       2000    
7       1539    
8       2549    
9       3950    
10      4758    
11      4290    
12      5498    
13      5248    
14      142 
15      3209    
16      2759    
17      4859    
18      2569    
19      739 
20      4529

可能是100-200至400-700之间的所有SICS应在工业1中,在300-350至980-1020之间的所有SICs应在工业2中,等等。

因此,简而言之-一个'If =或‘函数,我可以列出所有的SICs,可以匹配一个给定的行业谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-15 11:02:35

可以按数字添加带有筛选器的新列:

例如:

代码语言:javascript
运行
复制
data$Group <- 0
data[data$SCIS < 1000, data$Group == 1]
data[data$SCIS >= 1000,  data$Group == 2 ]
票数 2
EN

Stack Overflow用户

发布于 2021-04-15 11:02:48

floor除以SIC值后的值。

代码语言:javascript
运行
复制
df$Industry <- floor(df$SIC/1000) + 1
df

#   Permno  SIC Industry
#1       1  854        1
#2       2  977        1
#3       3  549        1
#4       4 1231        2
#5       5 3295        4
#6       6 2000        3
#7       7 1539        2
#8       8 2549        3
#9       9 3950        4
#10     10 4758        5
#11     11 4290        5
#12     12 5498        6
#13     13 5248        6
#14     14  142        1
#15     15 3209        4
#16     16 2759        3
#17     17 4859        5
#18     18 2569        3
#19     19  739        1
#20     20 4529        5

如果无法以编程方式定义组,则可能需要单独定义范围。使用case_whendplyr中这样做是很方便的。

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

df %>%
  mutate(Industry = case_when(between(SIC, 100, 200) | between(SIC, 400, 700) ~ 'Industry 1', 
                              between(SIC, 300, 350) | between(SIC, 980, 1020) ~ 'Industry 2'))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67107233

复制
相关文章

相似问题

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