【发布时间】:2020-01-20 11:27:11
【问题描述】:
我正在尝试将一个数据帧拆分为较小的数据帧,如果它们满足函数的命名条件,则将它们映射到某个函数。我尝试了很多方法,用 purrr map 直接使用 map_if 进行拆分,但并不幸运所以我现在使用split 和lapply
所以我将编写我现在陷入困境的代码。
x <- split(mtcars , mtcars$cyl)
lapply(x, function(x){
print(names(x))
})
我期望得到的是:
4
6
8
我得到的是
[1] "mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear" "carb"
[1] "mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear" "carb"
[1] "mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear" "carb"
$`4`
[1] "mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear" "carb"
$`6`
[1] "mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear" "carb"
$`8`
[1] "mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear" "carb"
看来是直接进入item,没有办法从apply里面提取item的父名。
关于您如何做的任何建议会有帮助?
更新
这是我想在虚拟代码中做的事情
x <- split(mtcars , mtcars$cyl)
lapply(x, function(x){
if(names(x) == 4){
somefunction(x)
}
})
【问题讨论】: