有关列表语法的另一个问题(我正在慢慢学习,我认为)。我在以下简化形式数据:将hist应用于包含NA的数据框列表
a=c(1,2,3,4,5,NA,NA)
b=c(6,7,8,9,10,NA,NA)
c=c(6,5,3,NA,NA,NA,NA)
d=c(NA,NA,NA,NA,NA,NA,NA)
A=data.frame(a,b,c,d)
B=data.frame(c,b,a,d)
C=data.frame(d,c,b,a)
mylist=list(A,B,C)
bins=c(0,2,4,6,8,10)
我想根据定义的二进制位在dataframes列表仓的每个列,然后返回一个平均数各bin为每个数据帧。我不介意输出是什么形式,数据帧或向量列表。因此,在这个例子:
hist(a,bins, plot= FALSE)
hist(b,bins, plot= FALSE)
hist(c,bins, plot= FALSE)
给出
$counts
[1] 2 2 1 0 0
$counts
[1] 0 0 1 2 2
$counts
[1] 0 1 2 0 0
分别计数。
我不知道该怎么做,但考虑到d只包含NA的我想它返回:
$counts
[1] 0 0 0 0 0
(我想将每个NA为0)。
因此A的平均值(其中包含A,B,C,d)将是:
$counts
[1] 2 2 1 0 0 +
$counts
[1] 0 0 1 2 2 +
$counts
[1] 0 1 2 0 0 +
$counts
[1] 0 0 0 0 0 +
= 2 3 4 2 2/4
= 0.5 0.75 1 0.5 0.5
这将是我的数据帧A.期望的输出向量的最终列表还将包括有关矢量对于B和C,尽管正如我所说,初始列表中每个数据帧的列的数据框也没有问题,因为最后一步是我将这些平均值计算在箱的中点上。
我希望我的解释足以说明我正在尝试做什么。
制作'd'数字:'d < - as.numeric(d) '它应该工作。 – Thomas
嗨托马斯,谢谢你。在更简单的情况下,我想忽略包含所有NA(如d)的数据框列表中的列,我该如何处理数据并获取平均值? – user1912925