我的 R 环境中包含一些对象。
tmp <- list(1,2,4)
dafa <- data.frame(thing="Yes",
value=4)
列表和数据框在使用时都显示为
list
:
typeof(get("tmp")) # list
typeof(get("dafa")) # list
我想获取环境中所有对象的数据帧,并使用
inherits(get(name), "data.frame")
记录其中某些对象是否是数据帧
library(tidyverse)
# get a list of all the objects in the environment and
# store in a table
data_items <- map_dfr(ls(), \(itm){
data.frame(name=itm,
type=typeof(get(itm)),
size=object.size(get(itm)))})
# adjust each row to specify if object is a dataframe
data_items %>% rowwise() %>%
mutate(type = ifelse(inherits(get(name), "data.frame"),
"data.frame",
type))
然而,这抱怨:
get(name) 中的错误:第一个参数的长度 > 1
即使是
rowwise
,你知道我哪里出错了吗?
data.frame(name = ls(),
class = sapply(mget(ls()), class))
# name class
# dafa dafa data.frame
# tmp tmp list