A base R option using split.default
+ gsub
split.default(df, gsub("\..*", "", names(df)))
gives
$E9
E9.time E9.response
1: 0.0 0.00000000
2: 0.2 0.00826733
3: 0.4 0.01416873
4: 0.6 0.00845066
5: 0.8 0.01258872
6: 1.0 0.01097368
$F12
F12.time F12.response
1: 0.0 0.00000000
2: 0.2 0.00703381
3: 0.4 0.00863728
4: 0.6 0.00739067
5: 0.8 0.00786157
6: 1.0 0.00679848
$H1
H1.time H1.response
1: 0.0 0.00000000
2: 0.2 0.00142469
3: 0.4 -0.00418229
4: 0.6 0.00361758
5: 0.8 0.00281592
6: 1.0 -0.00293035
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…