我有一个类似于
的数据框列表$ list
$gnl_4935
V1 V2 V3 V4 V5
99 gnl_4935 -63.23 -1.4 1.05263157894737 MS_run03
100 gnl_4935 -61.89 -1.06 1.25 MS_run03
101 gnl_4935 -51.29 -1.31 1.0989010989011 MS_run03
102 gnl_4935 -39.09 -1.05 1.44927536231884 MS_run03
$gnl_4990
V1 V2 V3 V4 V5
99 gnl_4897 -45.82 -1.4 1.05263157894737 MS_run03
100 gnl_4897 -33.85 -1.06 1.25 MS_run03
101 gnl_4897 -27.14 -1.31 1.0989010989011 MS_run03
$gnl_5098
V1 V2 V3 V4 V5
99 PSE_4 -50.49 -1.4 1.05263157894737 MS_run03
100 PSE_4 -39.48 -1.06 1.25 MS_run03
我想应用一个对不同列执行不同操作的函数。因此,在函数I中,数据帧的子集如下所述:
> Prop<- function (data, clmn)
+ {ratio<-data[ ,clmn]
+ complete <- c(ratio[ratio!=0],unique(ratio[ratio==0]))}
我想要第2列的子集:
lapply(list, Prop, 2)
我希望:
$gnl_4935
-63.23 -61.89 -51.29 -39.09
$gnl_4990
-45.82 -33.85 -27.14
$gnl_5098
-50.49 -39.48
但我明白了:
$gnl_4935
99 97 81 49
$gnl_4990
67 38 19
$gnl_5098
76 52
当我只测试子集时:
ratio<-data[ ,clmn]
我获得了以下结果:
$gnl_4935
[1] -63.23 -61.89 -51.29 -39.09
106 Levels: -20.4 -21.1 -21.23 -21.37 -21.93 -22.24 -22.52 -22.56 -24.05 -24.69 -24.83 -24.85 -25.25 -25.8 -26.44 ... -83.33
$gnl_4990
[1] -45.82 -33.85 -27.4
106 Levels: -20.4 -21.1 -21.23 -21.37 -21.93 -22.24 -22.52 -22.56 -24.05 -24.69 -24.83 -24.85 -25.25 -25.8 -26.44 ... -83.33
$gnl_5098
[1] -50.49 -39.48
106 Levels: -20.4 -21.1 -21.23 -21.37 -21.93 -22.24 -22.52 -22.56 -24.05 -24.69 -24.83 -24.85 -25.25 -25.8 -26.44 ... -83.33
因此,我真的不明白全功能的数量来自哪里。 有人有解释吗?
非常感谢