我试图创建一个新的变量来计算出现的次数(即non.na),在变量x下。我的数据集中的每一行都代表一个招聘信息,我想计算每个月提到STEM专业/学位作为工作要求的招聘信息的数量。
我创建了一个变量“stem_mention”,它统计了整个数据集中的所有工作提及,如下所示:
df2$stem_mention= NA #creating empty column
#placing the possible levels into a vector
stem_mention= c("chemical engineering", "electrical engineering", "physics", "biology", "engineering")
#for each value in stem_mention, if description has that value assign the new column one of the 4 numbers
for(i in stem_mention){
value = grepl(i, df2$description, ignore.case=TRUE)
df2$stem_mention[which(value)] = (1:5)[stem_mention==i]}
table(df2$stem_mention)
1 2 4 5
49 9 4 20
然而,我试图为变量“stem_mention”创建一个计算非. NA的列,我将其除以给定月份发布的总职位,得到如下结果:
使用下面提出的解决方案,我做到了这一点:
df2 %>%
group_by(month) %>%
filter(!is.na(stem)) %>%
summarize(stem_month = sum(stem))
型
它产生:
month
<chr>
stem_month
<int>
April_2021 19
Dec_2020 35
Feb_2021 23
March_2021 46
May_2021 13
Nov_2020 47
型
然而,我试图按月创建一个总工作,“jobs_per_month”,变量允许我做下面这样的事情:
df2 <-
group_by(month) %>%
transform(df2, share_stem_month = stem_monthly_mention/ jobs_per_month)
share_stem_month month jobs_per_month stem_monthly_mention
9% May_2021 267 24
10% April_2021 290 29
可复制的dataex
head(Jobs_Glassdoor_Nov_Dec2020_Feb_March_April_May2021, 5)[, c('month', 'nationality', 'posted_date')]
month
<chr>
stem_mention
<int>
posted_date
<chr>
Nov_2020 NA 44172.197916666664
Nov_2020 6 44154.094444444447
Nov_2020 NA 44164.156944444447
Nov_2020 NA 44147.370138888888
Nov_2020 NA 44173.06527777778
1条答案
按热度按时间pn9klfpd1#
如@Ronak所述,查看您的数据片段会很有帮助,但如果我正确理解您的问题,您需要
group_by
、filter
和summarize
的组合字符串
这是否给予了您所需要的?如果您想为每个月的非NA总计向现有数据集添加一个新变量,我认为您只需将上述变量分配给
df2$non_nas_by_month
或类似的变量。如果这不起作用,请告诉我已清理数据片段
型