У меня есть скрипт на R, который я пытаюсь использовать для разделения нескольких фреймов данных по определенной переменной.В настоящее время я использую цикл, чтобы сделать это, и мне интересно, могу ли я вместо этого использовать lapply
или подобную функцию.
Цикл, по сути, принимает фрейм данных df
, который имеет столбец с именем Time
,Значения времени указаны в часах и варьируются от 0 до 48, кратных шести (это то, что содержится в списке индексов).
Код должен создать новый фрейм данных с именем data.time.0, состоящий из всех строк, гдевремя = 0 и т. д. для каждого значения времени.
library(tidyverse)
index = seq(from = 0, to = 48, by = 6)
for (i in index) {
name = paste("data.time."+i,sep = "")
currentdf = filter(df,df$time == i)
assign(name,currentdf)
}
Однако я слышал, что по возможности следует избегать использования assign
, и я хотел бы использовать векторную операцию, а непетля.Это возможно?Как бы я это сделал?