【发布时间】:2015-03-21 19:41:46
【问题描述】:
我有一个数据集,我想通过一些条件将它作为 TRT 进行子集化,然后评估每个函数的一些函数,但我不是为每个子集重复该函数,而是执行一个 for 循环。问题是我想得到结果,但上面有子集的名称,我做不到
这是我的脚本和结果:
df_list <- split(dataet,(dataet$TRT))
> for (i in df_list){
+ a <- c(shapiro.test(i$FV0)$p.value)
+ print(a)
+ }
[1] 0.07373223
[1] 0.2995577
[1] 0.003565924
[1] 0.005733235
[1] 0.02378732
[1] 0.01615178
[1] 0.09363349
[1] 0.8619091
上面的问题是结果没问题,但是我无法获得这些值的分离。然后我试图用向量(a)粘贴df_list的名称,但我得到了最后一个结果:
> paste(names(df_list),a)
[1] "27D 0.861909062310829" "27S 0.861909062310829"
[3] "34D 0.861909062310829" "34S 0.861909062310829"
[5] "38D 0.861909062310829" "38S 0.861909062310829"
[7] "45D 0.861909062310829" "45S 0.861909062310829"
这是我的数据框的一部分:
> head(dataet)
ID sp IND POS Temp TRT FV0 FVf Prop
1 1 DIPOLE A D 27C 27D 0.833 0.664 0.2028812
2 2 DIPOLE A D 27C 27D 0.843 0.622 0.2621590
3 3 DIPOLE A D 27C 27D 0.843 0.525 0.3772242
4 4 DIPOLE A D 27C 27D 0.813 0.601 0.2607626
5 5 DIPOLE A D 27C 27D 0.810 0.592 0.2691358
6 6 DIPOLE A D 27C 27D 0.845 0.663 0.2153846
> tail(dataet)
ID sp IND POS Temp TRT FV0 FVf Prop
235 285 DIPOLE C S 45C 45S 0.764 0.383 0.4986911
236 286 DIPOLE C S 45C 45S 0.772 0.411 0.4676166
237 287 DIPOLE C S 45C 45S 0.748 0.073 0.9024064
238 288 DIPOLE C S 45C 45S 0.757 0.125 0.8348745
239 289 DIPOLE C S 45C 45S 0.773 0.086 0.8887451
240 290 DIPOLE C S 45C 45S 0.772 0.188 0.7564767
【问题讨论】:
-
究竟是什么
df_list -
抱歉,我没有在脚本中包含它...这是我拆分数据框 df_list
-
不用担心。使用此信息编辑问题以便其他人可以看到可能是个好主意。
-
“a”的值只是循环结束时创建的值。由于您没有通过分配索引值来存储结果,因此您只需获得最后一个。