R 的 gdata::left()
和 gdata::right()
实际上是相同的函数,只是名称不同并且工作方式完全一样,还是我不正确地使用它们?
我有:mtcars
我想要:仅来自 mtcars
(我知道我可以用 mtcars[,(length(mtcars)-1):(length(mtcars))]
来请求这个,但如果有更简单的方法,我为什么要这样做? )
我想要的是这样的:
gear carb
Mazda RX4 4 4
Mazda RX4 Wag 4 4
Datsun 710 4 1
Hornet 4 Drive 3 1
Hornet Sportabout 3 2
...
看起来 right(mtcars,2)
会完成这个,但它却给出了
mpg cyl
Mazda RX4 21.0 6
Mazda RX4 Wag 21.0 6
Datsun 710 22.8 4
Hornet 4 Drive 21.4 6
Hornet Sportabout 18.7 8
...
这与 left(mtcars,2)
完全相同:
mpg cyl
Mazda RX4 21.0 6
Mazda RX4 Wag 21.0 6
Datsun 710 22.8 4
Hornet 4 Drive 21.4 6
Hornet Sportabout 18.7 8
...
我的主要问题是,从数据框中获取最右边的 n 列的最简单方法是什么?我想要一些东西,希望是基于 R 的东西,它不需要知道总数mtcars
的列。
最佳答案
gdata 中似乎有一个奇怪/愚蠢的错误。如果您查看 left/right 的来源您会看到这两个函数都获得了 UseMethod("left")
。据我所知,这意味着调用 data.frame 中的任何一个都会导致调用 left.data.frame
。事实上,如果我输入
right <- function(x, n=6L) UseMethod("right")
然后 right(mtcars,2)
按预期工作。
关于r - 无法在 R 中区分 left() 和 right(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56808297/