【发布时间】:2020-10-19 15:59:17
【问题描述】:
我无法让管道和括号[] 一起工作。我怀疑我不了解管道的工作原理。
我正在尝试使用括号和管道来回答以下问题:
1952 年最富有的国家叫什么名字? (数据来自包gapminder)
我试过了:
1. df[df$year == 1970,] %>% df[df$money == max(df$money),]["country"]
2. df %>% filter(year=="1970") %>% df[df$money == max(df$money),]["country"]
3. df %>% filter(year=="1970") %>% filter(money == max(df$money))
在没有管道的情况下使用它 - 所有线路单独工作。我不是在寻找解决问题的另一种方法,而是更好地理解管道和支架,并使用它们来解决问题。
对于 1. 和 2。我收到错误消息 Error in xj[i] : invalid subscript type 'list',而对于 3,我得到一个让我困惑的空数据框。
【问题讨论】:
-
您的问题是在 1952 寻找最富有的国家。为什么使用条件
year == 1970?在gapminder数据帧中,没有 1970。因此,无论您尝试什么过滤器,结果仍然会得到一个零行数据帧。 -
我实际上是在寻找 1952,这篇文章中的 1970 是一个错误。也不适用于 1952 年。不过很好看