【问题标题】:counting particular number repetition in r计算r中的特定数字重复
【发布时间】:2012-06-13 16:44:47
【问题描述】:

这是一个小例子:

A <- c(1,1,1,1, 0, 0, 0, 2,2,2)
B <- c(1,1,1,1, 0, 0, 0, 0,2,2)
C <- c(1,1,3,3, 0,0, 2,2,2, NA)
myd <- data.frame (A, B, C)

我需要应用一个函数说“prod”(prod (myd$myvar, na.rm = TRUE),在应用之前我需要计算 0 的数量。

(1) If number zeros are equal to or less than 3, I need to replace with NA
    myd$A[myd$A ==0] <- NA

(2) If  number of zeros are greater than 3, no replacement action need to be done.
   myd$B[myd$B ==0] <- 0 

如何计算零并应用代码来获得结果。

编辑: 在上述数据集中,A和C满足条件1,B满足条件2。

【问题讨论】:

  • 你可以使用'rle',它大约是'rep'的倒数。它将给出每个重复条目的数量和长度。

标签: r function count dataframe


【解决方案1】:

你在寻找这样的东西吗?

f <- function(X) {
    if(sum(X==0, na.rm=TRUE) <= 3) X[X==0] <- NA
    X
}

data.frame(lapply(myd, f))
#     A B  C
# 1   1 1  1
# 2   1 1  1
# 3   1 1  3
# 4   1 1  3
# 5  NA 0 NA
# 6  NA 0 NA
# 7  NA 0  2
# 8   2 0  2
# 9   2 2  2
# 10  2 2 NA

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-04
    • 2017-01-07
    • 1970-01-01
    • 2017-07-09
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-03
    相关资源
    最近更新 更多