我想使用`[`
作为lapply
中的函数参数来索引完整的行。使用单个元素可以很简单地做到这一点:
lapply( list(iris, mtcars), `[`, 1, 3 )
# [[1]]
# [1] 1.4
#
# [[2]]
# [1] 160
但是,我似乎无法弄清楚与索引数据帧的整个行等效的前缀:
lapply( list(iris, mtcars), `[`, 1 ) # Seems to index columns
lapply( list(iris, mtcars), `[`, i=1 ) # ...same?
我知道我总是可以定义一个新函数
lapply( list(iris, mtcars), function(x) {x[1,]} ) # Desired behavior
但我想知道是否有办法以前缀形式获取等效的
x[1,]
。 最佳答案
你可以做:
lapply(list(iris, mtcars), "[", 1, )
[[1]]
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
[[2]]
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21 6 160 110 3.9 2.62 16.46 0 1 4 4
1,
后的空格专用于列。如果要整行,则为空白。如果您这样做:lapply(list(iris, mtcars), "[", 1, 1)
它返回:
[[1]]
[1] 5.1
[[2]]
[1] 21
那就是第一列的第一行。
关于r - 使用 `[`作为函数索引整行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57835132/