繁体   English   中英

从 Python 到 R 的简单转换

[英]Simple translation from Python to R

我正在尝试学习 R 但不能完全掌握语法。 Python 对我来说更直观。 我正在使用 R 中的nycflights13玩具数据集,以及如何弄清楚如何进行这个简单的执行

test = df.groupby('tailnum').agg({'flight':'count','arr_delay':'sum'})
test[(test.flight>=12)].sort_values(by='arr_delay',ascending=False)

并得到


      flight arr_delay
tailnum     
N15910  280 7317.0
N15980  316 7134.0
N16919  251 6904.0
N228JB  388 6778.0
N14998  230 6087.0
... ... ...
N711ZX  291 -2154.0
N722TW  314 -2199.0
N721TW  318 -2285.0
N718TW  328 -2335.0
N727TW  275 -2642.0

我尝试了以下方法,但数字已关闭。 我错过了一些东西。

test <- flights %>%
  group_by(tailnum) %>%
    filter(n()>=12) %>%
  summarize(total_delay = sum(arr_delay))

test[order(test$total_delay,decreasing = FALSE),]

并得到


tailnum total_delay
<chr>   <dbl>
N961UW  -1197           
N37700  -1148           
N3754A  -1084           
N847VA  -1006   
...
N179JB  4449    

简而言之,python 用户是 R 的完全菜鸟,并试图变得更好,请帮助

默认情况下,R 在取summean时不会删除NA值,添加na.rm. =TRUE na.rm. =TRUE并使用arrange对数据进行排序。

library(nycflights13)
library(dplyr)

flights %>%
  group_by(tailnum) %>%
  summarise(flight = n(), 
            arr_delay = sum(arr_delay, na.rm = TRUE))   %>%
  filter(flight >= 12) %>%
  arrange(desc(arr_delay))

#  tailnum flight arr_delay
#   <chr>    <int>     <dbl>
# 1 N15910     280      7317
# 2 N15980     316      7134
# 3 N16919     251      6904
# 4 N228JB     388      6778
# 5 N14998     230      6087
# 6 N192JB     319      5810
# 7 N292JB     322      5804
# 8 N12921     280      5788
# 9 N13958     259      5620
#10 N10575     289      5566
# … with 3,369 more rows

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM