R初学者:如何在已有列所在的数据框中创建新变量并按公司汇总两期利润
Hey there! 作为R语言新手,咱们一步步搞定你的需求~首先先把你的示例数据构造出来,然后用最常用的dplyr包来实现汇总,这个包语法直观,很适合初学者上手。
第一步:构造你的数据
先把你给出的表格转换成R里的数据框:
# 创建示例数据 df <- data.frame( Company = c("A", "B", "A", "B"), Term = c("1st", "1st", "2nd", "2nd"), Profit = c(300, 400, 500, 200) )
第二步:安装并加载dplyr包
如果还没装过这个包,先运行安装命令:
install.packages("dplyr")
然后加载包:
library(dplyr)
第三步:添加你需要的两个新变量
这里分两种常见场景,你可以根据需求选:
场景1:给每一行添加公司总利润(保留原数据行)
这种方式下,每个公司的每一期数据行都会显示该公司两期利润的总和,Overall变量我设置为统一标记"Total"(如果你有其他需求,比如标记为汇总类型,直接改引号里的内容就行):
df_result <- df %>% # 按公司分组 group_by(Company) %>% # 添加两个新变量 mutate( Overall = "Total", `Profit(各公司第一期与第二期利润之和)` = sum(Profit) ) %>% # 取消分组(好习惯) ungroup() # 查看结果 print(df_result)
运行后你会得到这样的结果:
Company Term Profit Overall Profit(各公司第一期与第二期利润之和) 1 A 1st 300 Total 800 2 B 1st 400 Total 600 3 A 2nd 500 Total 800 4 B 2nd 200 Total 600
场景2:添加单独的汇总行(原数据+汇总行)
如果你想要在原数据后面加上每个公司的汇总行,把Term设为"Overall",同时显示总利润,可以这么写:
# 先计算每个公司的汇总数据 summary_data <- df %>% group_by(Company) %>% summarize( Term = "Overall", Profit = sum(Profit), `Profit(各公司第一期与第二期利润之和)` = sum(Profit) ) %>% ungroup() # 把原数据和汇总行合并 df_result_with_summary <- bind_rows(df, summary_data) # 查看结果 print(df_result_with_summary)
运行结果会是:
Company Term Profit Profit(各公司第一期与第二期利润之和) 1 A 1st 300 NA 2 B 1st 400 NA 3 A 2nd 500 NA 4 B 2nd 200 NA 5 A Overall 800 800 6 B Overall 600 600
如果对dplyr的语法还有疑问,随时问哦~
内容的提问来源于stack exchange,提问作者AJI
相关产品推荐
相关产品推荐

