相关疑难解决方法(0)

从数据帧中按组查找最高十分位数

我试图使用函数创建新变量,lapply而不是使用循环在数据中正常工作.我曾经使用Stata,并且会用类似于此处讨论的方法解决这个问题.

由于在R中以编程方式命名变量是如此困难或至少是尴尬(并且似乎你不能使用索引assign),我已经将命名过程留到了之后lapply.然后我使用for循环在合并之前进行重命名,然后再用于合并.有更有效的方法吗?我该如何更换循环?我应该做某种重塑吗?

#Reproducible data
data <- data.frame("custID" = c(1:10, 1:20),
    "v1" = rep(c("A", "B"), c(10,20)), 
    "v2" = c(30:21, 20:19, 1:3, 20:6), stringsAsFactors = TRUE)

#Function to analyze customer distribution for each category (v1)
pf <- function(cat, df) {

        df <- df[df$v1 == cat,]
        df <- df[order(-df$v2),]

    #Divide the customers into top percents
    nr <- nrow(df)
    p10 <- round(nr * .10, 0)
    cat("Number of people in the Top 10% :", p10, …
Run Code Online (Sandbox Code Playgroud)

r rank quantile dataframe split-apply-combine

1
推荐指数
2
解决办法
844
查看次数

标签 统计

dataframe ×1

quantile ×1

r ×1

rank ×1

split-apply-combine ×1