列表中特定数据帧列中的频率-R

列表中特定数据帧列中的频率-R,r,list,dataframe,R,List,Dataframe,让我有一个由数据帧(df1、df2、…dfn)组成的列表 每个数据帧都有一个名为head1的列,该列由二进制元素(0和1)组成 比如说 list1[[1]]$head1是11010001 list1[[2]]$head1是1000100000 其中list1[[1]]是df1而list1[[2]]是df2 我想得到一个数据帧,它返回列表1中每个数据帧的头列中1的比例 对于上述示例: df[1,]=0.5 (四个0和四个1) (八个0和两个1) 我如何使用R来实现这一点?我将非常高兴能得到任

让我有一个由数据帧(df1、df2、…dfn)组成的列表

每个数据帧都有一个名为head1的列,该列由二进制元素(0和1)组成

比如说

list1[[1]]$head1
11010001

list1[[2]]$head1
1000100000

其中
list1[[1]]
df1
list1[[2]]
df2

我想得到一个数据帧,它返回列表1中每个数据帧的头列中1的比例

对于上述示例:

df[1,]=0.5  
(四个0和四个1)

(八个0和两个1)

我如何使用R来实现这一点?我将非常高兴能得到任何帮助。非常感谢

我们可以将
lappy()
mean()
结合使用,以获得
data.frame
列表中同一列中
1
的比例

lapply(list1, function(x) mean(x[,"head1"]))
#$df1
#[1] 0.5
#
#$df2
#[1] 0.2
数据

list1 <- structure(list(df1 = structure(list(head1 = c(1, 1, 0, 1, 0, 
0, 0, 1)), .Names = "head1", row.names = c(NA, -8L), class = "data.frame"), 
    df2 = structure(list(head1 = c(1, 0, 0, 0, 1, 0, 0, 0, 0, 
    0)), .Names = "head1", row.names = c(NA, -10L), class = "data.frame")), .Names = c("df1", 
"df2"))
list1我们可以将
lappy()
mean()
结合使用,以获得
data.frame
列表中同一列中
1
的比例

lapply(list1, function(x) mean(x[,"head1"]))
#$df1
#[1] 0.5
#
#$df2
#[1] 0.2
数据

list1 <- structure(list(df1 = structure(list(head1 = c(1, 1, 0, 1, 0, 
0, 0, 1)), .Names = "head1", row.names = c(NA, -8L), class = "data.frame"), 
    df2 = structure(list(head1 = c(1, 0, 0, 0, 1, 0, 0, 0, 0, 
    0)), .Names = "head1", row.names = c(NA, -10L), class = "data.frame")), .Names = c("df1", 
"df2"))
list1