Я хотел бы получить автоматический способ получить nrow()
подмножества моих многочисленных наборов данных. У меня есть большое количество DF, которые следуют схеме именования, и я бы хотел запустить nrow()
по каждому из них. Это то, что я придумал:Как получить список кадров данных из среды для более поздней магии()?
# generate two relevant and one irrelevant DF
test_5 <- data.frame(rnorm(5))
test_10 <- data.frame(rnorm(10))
irrelevant_df <- data.frame(rnorm(5))
# I want this, but automatically over all test_ DFs
nrow(test_5)
nrow(test_10)
# get all DFs that follow the 'test_' naming scheme
v <- grep('test_', ls(), value = TRUE)
v
l <- as.list(grep('test_', ls(), value = TRUE))
l
# works, but is manual
sapply(list(test_5, test_10), function(x) nrow(x))
# doesn't work (returns NULL), because l,v is stored as chr?
sapply(v, function(x) nrow(x))
sapply(l, function(x) nrow(x))
Есть ли способ, чтобы получить объекты из LS(), так что я могу раздвинуть результаты {S, L} применять функции?
В качестве бонусного вопроса, можно ли получить список ls()
объектов на заказ? Потому что v
хранит его в алфавитном порядке, поэтому более поздний rbind(v, sapply(...))
дает неправильные результаты.
Любые указатели приветствуются!
Положите data.frames в список при их создании. – Roland