R语言dplyr包:高效数据处理函数case_when、inner/semi_join/anti_join、right/left_join@灵魂走风的江湖

R语言高效数据处理包

本篇为dplyr包实用函数的连载,主要为SQL数据库中类似功能的实现。

1、case_when函数,有一些SQL基础(case when,clickhouse中为multif函数)的都猜得到这个函数的功能

可实现多条件判断并可以添加标签的函数,这在我们对数据进行分类整理中十分的实用,这个函数中的参数可以这样分:一部分是判断条件,另一部分是所要做的标签

#%>%为管道函数,必会的函数
iris%>%select(Sepal.Length,Species)%>%
    mutate(sl_size=case_when(Sepal.Length<=5~"s",
        Sepal.Length>=6~"l",
        Sepal.Length>=5&Sepal.Length<=6~"m"))

2、一系列xx_join函数,这可是解决了不少问题,不用在数据库中捣来捣去(可以进行多个关键变量匹配by=c(var1=var2,var3=var4)

(这一系列函数的参数都是一样的,分别为:xxx_join(df1,df2,by=c(“x1”,“x2”)或者by=c(“x1”=“x2”)或者省略,但是省略后函数会使用两个数据集中公有的变量作匹配))

2.1 inner_join函数所得结果为df1、df2数据的交集;

2.2 semi_join函数所得结果为与inner_join类似,同样是求两个数据集的交集,
但semi_join只保留/返回前者与后者相匹配
这段R语言代码主要使用了`dplyr`中的函数,对`all_predictions`数据集进行数据处理和分析,以生成一个关于蛋白质 - 化合物相互作用预测概率的表格。以下是对代码各部分的详细解释: 1. `cpi_prob_table <- ...`:这行代码将处理后的结果赋值给变量`cpi_prob_table`。 2. `all_predictions %>%`:使用`%>%`(管道操作符)将`all_predictions`数据集传递给下一个函数进行处理。 3. `dplyr::group_by(protein_id, compound_id)`:按`protein_id`和`compound_id`两列对`all_predictions`数据集进行分组。这样后续的操作将在每个分组内独立进行。 4. `dplyr::summarise(predicted_value = mean(pred), .groups = "drop")`:对每个分组内的`pred`列计算平均值,并将结果命名为`predicted_value`。`.groups = "drop"`参数表示在汇总后移除分组属性,返回一个未分组数据框。 5. `dplyr::arrange(dplyr::desc(predicted_value))`:按`predicted_value`列进行降序排序,即预测概率值从高到低排列。 ### 代码示例 ```R # 假设 all_predictions 是一个含 protein_id, compound_id 和 pred 列的数据框 library(dplyr) # 生成示例数据 all_predictions <- data.frame( protein_id = sample(1:5, 20, replace = TRUE), compound_id = sample(1:3, 20, replace = TRUE), pred = runif(20) ) # 执行代码 cpi_prob_table <- all_predictions %>% dplyr::group_by(protein_id, compound_id) %>% dplyr::summarise(predicted_value = mean(pred), .groups = "drop") %>% dplyr::arrange(dplyr::desc(predicted_value)) # 查看结果 print(cpi_prob_table) ``` ### 代码功能和用途 这段代码的主要功能是计算每个蛋白质 - 化合物组合的预测概率平均值,并按预测概率从高到低排序。在生物信息学或药物研发领域,这可能用于筛选最有可能发生相互作用的蛋白质 - 化合物对,以便进行进一步的实验验证或分析。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刺猬多情

一分钱都是爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值