将列从数据框划分为另一个

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (6)

我有2个数据框,我试图相互划分,但它不适合我。两个数据帧都是8 x 3,第一列的数据帧相同,两个数据帧的列名也相同

bal_tier[,c(1, 3:4)]
# A tibble: 8 x 3
# Groups:   hierachy_level2 [8]
  hierachy_level2 `201804` `201904`
  <chr>              <dbl>    <dbl>
1 CS                   239     250 
2 FNZ                   87      97 
3 OPS                 1057    1136.
4 P&T                  256     279 
5 R&A                  520     546 
6 SPE                  130     136.
7 SPP                   67      66 
8 TUR                   46      69 



    dput(bal_tier[,c(1, 3:4)])
structure(list(hierachy_level2 = c("CS", "FNZ", "OPS", "P&T", 
"R&A", "SPE", "SPP", "TUR"), `201804` = c(239, 87, 1057, 256, 
520, 130, 67, 46), `201904` = c(250, 97, 1136.5, 279, 546, 136.5, 
66, 69)), row.names = c(NA, -8L), groups = structure(list(hierachy_level2 = c("CS", 
"FNZ", "OPS", "P&T", "R&A", "SPE", "SPP", "TUR"), .rows = list(
    1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L)), row.names = c(NA, -8L), class = c("tbl_df", 
"tbl", "data.frame"), .drop = FALSE), class = c("grouped_df", 
"tbl_df", "tbl", "data.frame"))


tier_leavers[,c(1, 3:4)]
# A tibble: 8 x 3
# Groups:   hierachy_level2 [8]
  hierachy_level2 `201804` `201904`
  <chr>              <dbl>    <dbl>
1 CS                    32       47
2 FNZ                    1       11
3 OPS                   73       76
4 P&T                   48       33
5 R&A                   41       33
6 SPE                   28       30
7 SPP                   10       12
8 TUR                    2        3

    dput(tier_leavers[,c(1, 3:4)])
structure(list(hierachy_level2 = c("CS", "FNZ", "OPS", "P&T", 
"R&A", "SPE", "SPP", "TUR"), `201804` = c(32, 1, 73, 48, 41, 
28, 10, 2), `201904` = c(47, 11, 76, 33, 33, 30, 12, 3)), row.names = c(NA, 
-8L), groups = structure(list(hierachy_level2 = c("CS", "FNZ", 
"OPS", "P&T", "R&A", "SPE", "SPP", "TUR"), .rows = list(1L, 2L, 
    3L, 4L, 5L, 6L, 7L, 8L)), row.names = c(NA, -8L), class = c("tbl_df", 
"tbl", "data.frame"), .drop = FALSE), class = c("grouped_df", 
"tbl_df", "tbl", "data.frame"))

这样做可以满足我的需求:

    bal_tier[,1]
# A tibble: 8 x 1
# Groups:   hierachy_level2 [8]
  hierachy_level2
  <chr>          
1 CS             
2 FNZ            
3 OPS            
4 P&T            
5 R&A            
6 SPE            
7 SPP            
8 TUR   

  (tier_leavers[,c(3:4)] / bal_tier[,c(3:4)])
      201804     201904
1 0.13389121 0.18800000
2 0.01149425 0.11340206
3 0.06906339 0.06687198
4 0.18750000 0.11827957
5 0.07884615 0.06043956
6 0.21538462 0.21978022
7 0.14925373 0.18181818
8 0.04347826 0.04347826

但是当我把它组合在一起时,我最终得到了这个:

    cbind(bal_tier[,1], tier_leavers[,c(3:4)] / bal_tier[,c(3:4)])
       [,1]        [,2]     
201804 Character,8 Numeric,8
201904 Character,8 Numeric,8

我在这里理解错了什么?

提问于
用户回答回答于

这是使用tidyverse的解决方案

nme <- c("A","B","C","D","E")
yr_1 <- round(10*runif(n=5,min=0,max=10),0)
yr_2 <- round(10*runif(n=5,min=0,max=10),0)

data_1 <- data.frame(nme,yr_1,yr_2) 

yr_1 <- round(10*runif(n=5,min=0,max=10),0)
yr_2 <- round(10*runif(n=5,min=0,max=10),0)

data_2 <- data.frame(nme,yr_1,yr_2) 

data_divide <- data_1 %>% 
  left_join(data_2,by="nme") %>% 
  mutate(
    result_1=yr_1.x/yr_1.y,
    result_2=yr_2.x/yr_2.y
    )

热门问答

如何提高调用API网关、scf的请求内容长度限制?

Tina

腾讯云 · 产品经理 (已认证)

Go Serverless!
推荐
您好,当前SCF确实对于同步请求的事件大小,响应大小有相应的限制,最大为6MB。可以参考文档 https://cloud.tencent.com/document/product/583/11637 更多解决方案,欢迎您进入SCF用户q群一起讨论! 群号:537539545 sc...... 展开详请

cmq的实例是否支持调整写入频率?

是否有语音转发功能?

software微软、谷歌、腾讯、阿里、百度……
推荐已采纳
您好,核实下您咨询的是哪个端的问题,目前是没有语音转发功能的。这里提供下android端消息转发的示例参考: https://cloud.tencent.com/document/product/269/9232 image.png ... 展开详请

信令包里面的公网地址为什么都被改成内网地址了?

您描述的原因是云服务器内网ip地址与公网ip地址是一对一映射,故云服务器内显示的是内网ip地址。 如您需要网卡设置公网ip地址,建议您参考下方文档eip直通(已为您开通白名单) EIP 直通:https://cloud.tencent.com/document/product/2...... 展开详请

腾讯云短信SDK有没有支持NETFramework4.5.1的????

您好,可使用腾讯云短信C# SDK,github:https://github.com/qcloudsms/qcloudsms_csharp,感谢您对腾讯云短信的支持。

压力测试无法添加https域名?

所属标签

扫码关注云+社区

领取腾讯云代金券