【发布时间】:2021-07-09 04:50:20
【问题描述】:
gapminder 是一个小标题,而 lifeExp 是一个变量名,我尝试使用两个函数arrange() 和 desc()。
这行得通:
gapminder %>% arrange(desc(lifeExp))
这不起作用:
gapminder %>% desc(arrange(lifeExp)
错误:未使用的参数 (arrange(lifeExp))
我不知道为什么,非常感谢任何帮助。
【问题讨论】:
gapminder 是一个小标题,而 lifeExp 是一个变量名,我尝试使用两个函数arrange() 和 desc()。
这行得通:
gapminder %>% arrange(desc(lifeExp))
这不起作用:
gapminder %>% desc(arrange(lifeExp)
错误:未使用的参数 (arrange(lifeExp))
我不知道为什么,非常感谢任何帮助。
【问题讨论】:
我也是新手,不过好像每行代码的语法都不一样。
gapminder %>%arrange(desc(lifeExp)) # 读作“tibble gapminder”,“然后”“排列”它“在“lifeExp”的“后代值”中
gapminder %>% desc(arrange(lifeExp) # 读作"the tibble gapminder", "then" "in descendant order" "arrange it" by "lifeExp"。arrange 命令用于 tibble,而 a desc 是针对一个变量的。
Espero me haya hecho entender 兄弟
【讨论】:
前面的答案或多或少是对的,但这是由于管道操作员 %>% 的性质造成的。
管道获取左边的任何内容并将其作为第一个参数传递给右边的函数。如果您查看dplyr::desc 的文档,您会发现它只需要一个参数 x (要排列的向量),因此您的第二个示例相当于
desc(gapminder, arrange(lifeExp))
并且 R 在它期望的地方看到两个参数(因此出现错误消息)。
arrange() 另一方面接受两个参数,所以你的第一个例子相当于:
arrange(gapminder, desc(lifeExp))
有效,因为 R 期望 arrange() 有两个参数,这就是它所看到的。
【讨论】: