Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中重复2次或以上的变量数_R_List_Function_Loops_Dataframe - Fatal编程技术网

在R中重复2次或以上的变量数

在R中重复2次或以上的变量数,r,list,function,loops,dataframe,R,List,Function,Loops,Dataframe,我有两种形式的数据:一种是列表,即r,另一种是数据框,即df。对于每种形式的数据,我如何知道重复2次或更多次的变量数量?在下面的示例中,我期望的输出是:AA 3次,BB 2次,CC 2次 注:无论数据的形式如何,答案都应相同 r <- list( data.frame( AA = c(2,2,1,1,NA, NA), BB = c(1,1,1,2,2,NA), CC = c(1:5, NA)), # LIST data.frame( AA = c(1,NA,3,1,NA,

我有两种形式的数据:一种是列表,即r,另一种是数据框,即df。对于每种形式的数据,我如何知道重复2次或更多次的变量数量?在下面的示例中,我期望的输出是:AA 3次,BB 2次,CC 2次

注:无论数据的形式如何,答案都应相同

r <- list( data.frame( AA = c(2,2,1,1,NA, NA), BB = c(1,1,1,2,2,NA), CC = c(1:5, NA)), # LIST

        data.frame( AA = c(1,NA,3,1,NA,NA), DD = c(1,1,1,2,NA,NA)),

        data.frame( AA = c(1,NA,3,1,NA,NA), BB = c(1,1,1,2,2,NA), CC = c(0:4, NA)) )


df <- do.call(cbind, r)       ## DATA.FRAME

我们可以在数据集的名称上创建>=2的频率计数

tbl <- table(names(df))
tbl1 <- tbl[tbl >=2]
tbl1
#  AA BB CC 
#  3  2  2 

lapply(r, function(x) table(names(x)[names(x) %in% names(tbl1)]))
如果我们需要另一个答案

vec <- names(unlist(r, recursive = FALSE))
nm1 <- unique(vec[duplicated(vec)])
lapply(r, function(x) table(names(x)[names(x) %in% nm1]))

@如果是那样的话,就容易多了。更新后的R:TBL @ RNROUZIN不是基于DF的,只是根据您以前的问题,我们不应该考虑R?@ RNROUZIAN的建议是什么?lmo@rnorouzian在此之后,tbl[tbl>=2]