【问题标题】:the number of variables that are repeated 2 or more times in R在 R 中重复 2 次或更多次的变量数
【发布时间】:2019-10-06 15:47:07
【问题描述】:

我有两种形式的数据:list(即r)和data.frame(即df)。对于每种形式的数据,我如何知道重复 2 次或更多次的变量数量(在下面的示例中,我的期望输出 是:AA 3 timesBB 2 timesCC 2 times)?

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

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

【问题讨论】:

    标签: r list function loops dataframe


    【解决方案1】:

    我们可以在数据集的names 上使用&gt;= 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]))
    

    【讨论】:

    • @rnorouzian 在这种情况下,它更容易。更新了帖子
    • for r:tbl &lt;- table(unlist(lapply(r, names))).
    • @rnorouzian 这不是仅基于df(根据您之前的问题,我们不应该考虑r)吗?
    • @rnorouzian lmo 的建议怎么样
    • @rnorouzian 之后tbl[tbl &gt;=2]
    猜你喜欢
    • 1970-01-01
    • 2016-05-30
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-23
    相关资源
    最近更新 更多