首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在将df和column作为输入的函数上使用lapply -按百分比重新排序

,可以使用以下步骤:

  1. 首先,确保你已经导入了所需的R包,例如dplyr和tidyverse。
  2. 创建一个自定义函数,该函数将按照指定的列(column)对数据框(df)进行重新排序。函数的输入参数应包括df和column。
  3. 在函数内部,使用dplyr包中的arrange()函数对数据框进行排序。按照指定的列(column)进行排序,并使用desc()函数以降序方式排序。
  4. 接下来,计算每个观测值在指定列(column)中的百分比。可以使用mutate()函数和percent_rank()函数来实现这一点。percent_rank()函数将为每个观测值计算其在指定列(column)中的百分比排名。
  5. 最后,使用lapply()函数将自定义函数应用于数据框(df)的每个列(column)。这将返回一个包含重新排序后的数据框的列表。

以下是一个示例代码:

代码语言:txt
复制
library(dplyr)
library(tidyverse)

# 自定义函数
reorder_by_percent <- function(df, column) {
  df <- df %>%
    arrange(desc({{ column }})) %>%
    mutate(percent_rank = percent_rank({{ column }}))
  
  return(df)
}

# 使用lapply应用函数到df的每个列
reordered_dfs <- lapply(df, function(x) reorder_by_percent(df, x))

在这个示例中,我们创建了一个名为reorder_by_percent的自定义函数,该函数接受数据框(df)和列(column)作为输入参数。函数内部使用dplyr包中的函数对数据框进行排序和计算百分比排名。然后,我们使用lapply()函数将自定义函数应用于数据框(df)的每个列(column),并将结果存储在reordered_dfs列表中。

请注意,这只是一个示例代码,具体的实现可能会根据你的数据框(df)结构和需求进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

R语言中 apply 函数详解

因此,在Python和R中都有大量的函数和工具可以帮助我们完成这项任务,这一点也不奇怪。 今天,我们将使用R并学习在R中转换数据时使用最广泛的一组“apply”函数。...它仅将数据和函数作为基本参数: lapply(X, FUN) 让我们看一些例子: # define a list cart 作为输入时,tapply()会对向量的每个子集执行指定的操作。需要的参数包括: tapply(X, INDEX, FUN) 其中INDEX表示要用于分隔数据的因子。听起来耳熟吗?...我们将item_qty向量按item_cat向量分组,以创建向量的子集。然后我们计算每个子集的平均值。...现在,我们将创建一个新变量,该变量包含V1列和V3列的乘积: mapply(function(x, y) x/y, df$V1, df$V3) ?

20.5K40

快速介绍Python数据分析库pandas的基础知识和代码示例

“软件工程师阅读教科书作为参考时不会记住所有的东西,但是要知道如何快速查找重·要的知识点。” ? 为了能够快速查找和使用功能,使我们在进行机器学习模型时能够达到一定流程化。...在本例中,将新行初始化为python字典,并使用append()方法将该行追加到DataFrame。...通常回根据一个或多个列的值对panda DataFrame进行排序,或者根据panda DataFrame的行索引值或行名称进行排序。 例如,我们希望按学生的名字按升序排序。...更复杂一点的,我们希望按物理分数的升序排序,然后按化学分数的降序排序。...假设我们想按性别将值分组,并计算物理和化学列的平均值和标准差。

8.1K20
  • 如何通过R语言制作BBC风格的精美图片

    Free scales 可能已经在上表中注意到,人口相对较少的大洋洲已经完全消失。默认情况下,构面在较小的倍数上使用固定的轴比例。...最好始终在较小的倍数上使用相同的y轴比例,以避免产生误导,但有时您可能需要为每个倍数分别设置这些值,我们可以通过添加参数scales =“ free”来实现。...按大小重新排序栏 默认情况下,R将按字母顺序显示数据,但按大小排列则很简单:只需将reorder()包装在要重新排列的x或y变量周围,然后指定要变量 重新排序。 例如。...image.png 修改柱状图柱子顺序 有时,您需要以不按字母顺序或按大小重新排序的方式对数据进行排序。...为了正确排序这些参数,需要在绘制图表之前设置数据的因子水平,在levels参数中指定要绘制类别的顺序: dataset$column column, levels =

    13.1K10

    5R语言综合运用

    例如,若要选择数据框df中的列x和y,可以使用以下代码:library(dplyr),df df, x, y),filter函数用于筛选数据框中的行,它接受一个逻辑条件作为参数,返回符合条件的行...例如,若要选出数据框df中满足条件x>10且y的行,可以使用以下代码:df df, x > 10 & y 使用多个逻辑条件组合...输出类型:str_to_lower()始终返回字符向量,而tolower()根据输入变量类型的不同而返回不同类型的结果。...(z)#将行名作为第一列,不可先加行名,否则每行取方差会显示NA,因为数据类型会不一样 dim(z) 1 19832 8 ```r z 的数据框,我们可以使用以下代码来查看前3行和后3行: # 查看前3行head(mydata, n = 3) # 查看后3行tail(mydata, n = 3)注意,在这里

    2.3K00

    Apache Spark 2.2.0 中文文档 - SparkR (R on Spark) | ApacheCN

    (s) and using gapply or gapplyCollect(在一个大的 dataset 上通过 input colums(输入列)来进行 grouping(分组)并且使用 gapply... or gapplyCollect 来运行一个指定的函数) gapply gapplyCollect 使用 spark.lapply 分发运行一个本地的 R 函数 spark.lapply...从数据源创建 SparkDataFrames 常见的方法是 read.df. 此方法将加载文件的路径和数据源的类型,并且将自动使用当前活动的 SparkSession....(s) and using gapply or gapplyCollect(在一个大的 dataset 上通过 input colums(输入列)来进行 grouping(分组)并且使用 gapply... spark.lapply 分发运行一个本地的 R 函数 spark.lapply 类似于本地 R 中的 lapply, spark.lapply 在元素列表中运行一个函数,并使用 Spark 分发计算

    2.3K50

    【学习】用R和集算器计算连续上涨5天的股票

    思路:导入数据;过滤出上个月的数据;按照股票代码分组;将数据按日期排序;计算出每天比上一天的收盘价的增长额;计算出连续正增长的天数;过滤出正增长天数大于等于5的那些股票。   ...只需要某个月的交易数据。   A3:=A2.group(Code),按股票代码分组。这和R语言中的split函数功能类似。点击该单元格可以在右边看到计算结果: ?   ...06-22:由于R不能像集算器那样方便的用~来操作每个分组,因此这里需要一个大循环,每次循环针对一个股票进行计算。   07:按日期排序。...23:取出分组中的代码,A9lapply(A8,function(x) x$Code[[1]]),如下图: ? ?   一些体会:   R和集算器凭借自身的能力都可以实现较复杂的股票分析。...使用R来完成股票分析需要一定的编程技巧和数学知识,这样才能灵活运行R的各项功能。R还具备优秀的扩展性,比如有针对股票的第三方库函数和统计图;再比如完全可以自己写一个更高效的读取Excel的函数。

    1.6K90

    XGBoost和LightGBM

    显然,我们的目标是要使得树群的预测值 尽量接近真实值 ,而且有尽量大的泛化能力。 所以,从数学角度看这是一个泛函最优化问题,故把目标函数简化如下: 这个目标函数分为两部分:损失函数和正则化项。...最后,在找到一个特征的最好分割点后,将数据分裂成左右子节点。 这样的预排序算法的优点是能精确地找到分割点。但是缺点也很明显:首先,空间消耗大。...实际上很多叶子的分裂增益较低,没必要进行搜索和分裂。LightGBM使用了带有深度限制的按叶子生长 (leaf-wise) 算法。...在遍历数据的时候,根据离散化后的值作为索引在直方图中累积统计量,当遍历一次数据后,直方图累积了需要的统计量,然后根据直方图的离散值,遍历寻找最优的分割点。...首先它抛弃了大多数GBDT工具使用的按层生长 (level-wise) 的决策树生长策略,而使用了带有深度限制的按叶子生长 (leaf-wise) 算法。

    1.3K10

    R语言︱数据集分组、筛选(plit – apply – combine模式、dplyr、data.table)

    ,它的输入参数和计算结果都是数据框,用法相对简单。...在base包里和split功能接近的函数有cut(对属性数据分划),strsplit(对字符串分划)以及subset(对向量,矩阵或数据框按给定条件取子集)等。...其中 sapply 的用法和 lapply 的区别只在参数上,如下: sp<-split(orders,orders[,c("SELLERID","CLIENT")],drop=TRUE) result1...")],function(x) sum(x)) 4、subset()函数 利用subset()函数进行访问和选取数据框的数据更为灵活,subset函数将满足条件的向量、矩阵和数据框按子集的方式返回。...在使用data.table时候,需要预先布置一下环境: data<-data.table(data) 如果不布置环境,很多内容用不了。

    20.9K32

    一文教你如何全面分析股市数据特征

    特征重要性 通过多种方式对特征重要性进行评估,将每个特征的特征重要的得分取均值,最后以均值大小排序绘制特征重要性排序图,直观查看特征重要性。...在随机森林中某个特征X的重要性的计算方法如下: 对于随机森林中的每一颗决策树, 使用相应的OOB(袋外数据)数据来计算它的袋外数据误差 ,记为 ....indices = np.argsort(importances)[::-1] # 重新排列特性名称,使它们与已排序的特性重要性相匹配 names = [dataset.columns[i] for...它的主要思想是在不同的数据子集和特征子集上运行特征选择算法,不断的重复,最终汇总特征选择结果,比如可以统计某个特征被认为是重要特征的频率(被选为重要特征的次数除以它所在的子集被测试的次数)。...将平均得到创建DataFrame数据框,从高到低排序,并利用可视化方法将结果展示出。

    2K30

    R语言中的循环函数(Grouping Function)

    apply函数中,作为第4个参数: apply(m,1,sum,na.rm=TRUE) [1] 9 8 需要注意的是如果是Data Frame,那么系统会将其转为Matrix,如果所有Column不是数字类型或者类型不一致...Lapply 前面说到apply是对于matrix和array的,针对list,我们可以使用lapply函数。该函数接收list,返回的结果也是一个list。...lapply返回的结果和传入的List的结构相同,传入多少个Item,返回的也是多少个Item。...Sapply Sapply函数和Lapply函数很类似,也是对List进行处理,只是在返回结果上,Sapply会根据结果的数据类型和结构,重新构建一个合理的数据类型返回。...USE.NAMES是对字符串数据处理时,是否使用字符串作为命名的。

    1.5K20

    比较(七)利用python绘制表格

    比较(七)利用python绘制表格 表格(Table)简介 表格是数据在行和列中的结构化排列,允许进行方便的排序、过滤和分析。表格的优点在于可以清晰、有组织的呈现信息,便于快速比较和解读信息。...自定义表格一般是结合使用场景对相关参数进行修改,并辅以其他的绘图知识。...参数信息可以通过官网进行查看,其他的绘图知识则更多来源于实战经验,大家不妨将接下来的绘图作为一种学习经验,以便于日后总结。...plt.title('绘制bar百分比') tab = Table(df, textprops={"ha": "center"}, column_definitions...=col_defs) plt.show() 总结 以上通过pandas的styler方法绘制独具风格的表格,这里推荐使用plottable快速绘制表格,并通过相关方法和参数自定义多样化的表格。

    26410

    pandas数据清洗,排序,索引设置,数据选取

    df.fillna({1:0,2:0.5}) #对第一列nan值赋0,第二列赋值0.5 df.fillna(method='ffill') #在列方向上以前一个值作为值赋给NaN 值替换replace(...df.drop_duplicates(['k1','k2'], take_last=True)# 保留 k1和k2 组合的唯一值的行,take_last=True 保留最后一行 ---- 排序 索引排序...# 默认axis=0,按行索引对行进行排序;ascending=True,升序排序 df.sort_index() # 按列名对列进行排序,ascending=False 降序 df.sort_index...(axis=1, ascending=False) 值排序 # 按值对Series进行排序,使用order(),默认空值会置于尾部 s = pd.Series([4, 6, np.nan, 2, np.nan...columns设置成索引index 打造层次化索引的方法 # 将columns中的其中两列:race和sex的值设置索引,race为一级,sex为二级 # inplace=True 在原数据集上修改的

    3.3K20

    翻译|给数据科学家的10个提示和技巧Vol.1

    该博客是由一群数据科学家运营,专注于讲解在各种领域如何运用大数据技术(从机器学习和人工智能到业务领域)。 1 引言 这一系列对数据科学世界中常见的任务提供了一些代码作为参考。...本文主要涵盖 Python、R、Unix、Excel、Git和Docker等语言的提示(Tips)。这一期主要展示在不同应用场景下的10个提示。...57 85 3 3 79 94 38 4 75 71 58 我们可以按行获取每一行的最大值对应的列名,如下所示: colnames(df)[max.col(df,ties.method="random...假设有以下列表: l = [(1,2), (4,6), (5,1), (1,0)] 我想按元组的第二个元素来排序: sorted(l, key=lambda t: t[1]) [(1, 0), (5...或者,也可以将脚本作为python3 file.py运行。例如,假设文件.py是: #!

    47740

    「R」apply,lapply,sapply用法探索

    但是,由于在R语言中apply函数与其他语言循环体的处理思路是完全不一样的,所以apply函数族一直是使用者玩不转一类核心函数。...我一般最常用的函数为apply和sapply,下面将分别介绍这8个函数的定义和使用方法。 2. apply函数 apply函数是最常用的代替for循环的函数。...3. lapply函数 lapply函数是一个最基础循环操作函数之一,用来对list、data.frame数据集进行循环,并返回和X长度同样的list结构作为结果集,通过lapply的开头的第一个字母’...,那么直接使用lapply就不能达到想要的效果了。...4. sapply函数 sapply函数是一个简化版的lapply,sapply增加了2个参数simplify和USE.NAMES,主要就是让输出看起来更友好,返回值为向量,而不是list对象。

    4.6K32

    9个value_counts()的小技巧,提高Pandas 数据分析效率

    生成的Series可以按降序或升序排序,通过参数控制包括或排除NA。 在本文中,我们将探讨 Pandas value_counts() 的不同用例。您将学习如何使用它来处理以下常见任务。...1、默认参数 2、按升序对结果进行排序 3、按字母顺序排列结果 4、结果中包含空值 5、 以百分比计数显示结果 6、将连续数据分入离散区间 7、分组并调用 value_counts() 8、将结果系列转换为...: int64 3、按字母顺序排列结果 我们已经学习了参数升序以获得按值计数 ASC 或 DESC 排序的结果。..., dtype: int64 5、以百分比计数显示结果 在进行探索性数据分析时,有时查看唯一值的百分比计数会更有用。...(),它返回一个以 num_legs 和 num_wings 作为索引的 MultiIndex 系列。

    2.5K20

    9个value_counts()的小技巧,提高Pandas 数据分析效率

    生成的Series可以按降序或升序排序,通过参数控制包括或排除NA。 在本文中,我们将探讨 Pandas value_counts() 的不同用例。您将学习如何使用它来处理以下常见任务。...默认参数 按升序对结果进行排序 按字母顺序排列结果 结果中包含空值 以百分比计数显示结果 将连续数据分入离散区间 分组并调用 value_counts() 将结果系列转换为 DataFrame 应用于DataFrame...: int64 3、按字母顺序排列结果 我们已经学习了参数升序以获得按值计数 ASC 或 DESC 排序的结果。..., dtype: int64 5、以百分比计数显示结果 在进行探索性数据分析时,有时查看唯一值的百分比计数会更有用。...(),它返回一个以 num_legs 和 num_wings 作为索引的 MultiIndex 系列。

    6.7K61

    9个value_counts()的小技巧,提高Pandas 数据分析效率

    生成的Series可以按降序或升序排序,通过参数控制包括或排除NA。 在本文中,我们将探讨 Pandas value_counts() 的不同用例。您将学习如何使用它来处理以下常见任务。...默认参数 按升序对结果进行排序 按字母顺序排列结果 结果中包含空值 以百分比计数显示结果 将连续数据分入离散区间 分组并调用 value_counts() 将结果系列转换为 DataFrame 应用于DataFrame...int64 3、按字母顺序排列结果 我们已经学习了参数升序以获得按值计数 ASC 或 DESC 排序的结果。..., dtype: int64 5、以百分比计数显示结果 在进行探索性数据分析时,有时查看唯一值的百分比计数会更有用。...和 num_wings 作为索引的 MultiIndex 系列。

    3K20
    领券