У меня возникли некоторые проблемы с попыткой написать сценарий для кода на R, чтобы он разделял фрейм данных на основе символа в столбце фрейма данных без указания вручную команды подмножества. Ниже приведен скрипт для воспроизведения в R:
a=c("Model_A","R1",358723.0,171704.0,1.0,36.818500,4.0222700,1.38895000)
b=c("Model_A","R2",358723.0,171704.0,2.6,36.447300,4.0116100,1.37479000)
c=c("Model_A","R3",358723.0,171704.0,5.0,35.615400,3.8092600,1.34301000)
d=c("Model_B","R1",358723.0,171704.0,1.0,39.818300,2.4475600,1.50384000)
e=c("Model_B","R2",358723.0,171704.0,2.6,39.391600,2.4209900,1.48754000)
f=c("Model_B","R3",358723.0,171704.0,5.0,38.442700,2.3618400,1.45126000)
g=c("Model_C","R1",358723.0,171704.0,1.0,31.246400,2.2388000,1.30652000)
h=c("Model_C","R2",358723.0,171704.0,2.6,30.911600,2.2144800,1.29234000)
i=c("Model_C","R3",358723.0,171704.0,5.0,30.166700,2.1603000,1.26077000)
df=data.frame(a,b,c,d,e,f,g,h,i)
df=t(df)
df=data.frame(df)
col_list=list("Model","Receptor.name","X(m.)","Y(m.)","Z(m.)",
"nox","PM10","PM2.5")
colnames(df)=col_list
По сути, я пытаюсь разделить фрейм данных (df) по именам моделей («Model_A», «Model_B» и «Model_C») и сохранить их в новых и разных фреймах данных. Я пытался использовать следующую команду
df_test=split(df,with(df,interaction(Model,Model)), drop = TRUE)
Эта команда разделяет фрейм данных, но сохраняет их в списках, и я не знаю, как извлечь списки по отдельности и сохранить их как фреймы данных. Есть ли более простое решение (если возможно, избегать команды подмножеств, поскольку мне нужно, чтобы скрипт был динамичным и относительным), или кто-нибудь знает, как использовать последнюю команду, показанную выше, для разделения списков на отдельные фреймы данных? Также, если возможно, можно ли назвать фрейм данных после модели?
Я прошу прощения, если это много вопросов, но любая помощь будет принята с благодарностью! Спасибо!