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

将列与R中的case_when (across())内的后续列合并的一般方法

将列与R中的case_when (across())内的后续列合并的一般方法是使用dplyr包中的mutate()函数和across()函数。通过这两个函数的组合,可以对指定的列进行条件判断,并在满足条件时进行列合并。

具体步骤如下:

  1. 导入dplyr包:在R中使用library(dplyr)命令导入dplyr包,以便使用其中的函数。
  2. 使用mutate()函数和across()函数:使用mutate()函数创建一个新的列,并使用across()函数指定需要进行条件判断的列。
  3. 使用case_when()函数进行条件判断:在across()函数内部使用case_when()函数对指定的列进行条件判断。case_when()函数可以根据指定的条件进行判断,并返回相应的值。
  4. 合并列:在case_when()函数内部,可以使用paste()函数将满足条件的列进行合并。paste()函数可以将多个列的值按指定的分隔符进行合并。

下面是一个示例代码:

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

# 创建一个示例数据框
df <- data.frame(
  A = c(1, 2, 3),
  B = c(4, 5, 6),
  C = c(7, 8, 9)
)

# 使用mutate()函数和across()函数进行列合并
df <- df %>%
  mutate(D = across(A:C, ~ case_when(
    . == 1 ~ paste(A, B, C, sep = "-"),
    . == 2 ~ paste(A, B, sep = "-"),
    . == 3 ~ paste(B, C, sep = "-"),
    TRUE ~ ""
  )))

# 输出结果
print(df)

在上述示例代码中,我们创建了一个示例数据框df,其中包含了三列(A、B、C)。然后使用mutate()函数和across()函数对A、B、C列进行条件判断,并根据条件使用paste()函数进行列合并,将合并结果存储在新的列D中。最后,通过print()函数输出结果。

这是一个简单的示例,实际应用中可以根据具体需求进行更复杂的条件判断和列合并操作。对于更多关于dplyr包的用法和函数介绍,可以参考腾讯云的相关产品和产品介绍链接地址。

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

相关·内容

R语言指定取交集然后合并多个数据集简便方法

思路是 先把5份数据基因名取交集 用基因名给每份数据做行名 根据取交集结果来提取数据 最后合并数据集 那期内容有人留言了简便方法,很短代码就实现了这个目的。...我代码记录在这篇推文里 因为5份数据集以csv格式存储,首先就是获得存储路径下所有的csv格式文件文件名,用到命令是 files<-dir(path = "example_data/merge_data...TRUE,则返回文件<em>的</em>完整路径,如果设置<em>的</em>为FALSE则只返回文件名。...相对路径和绝对路径是很重要<em>的</em>概念,这个一定要搞明白 pattern参数指定文件<em>的</em>后缀名 接下来批量<em>将</em>5份数据读入 需要借助tidyverse这个包,用到<em>的</em>是map()函数 library(tidyverse...) df<-map(files,read.csv) class(df) df是一个列表,5份数据分别以数据框<em>的</em>格式存储在其中 最后是<em>合并</em>数据 直接一行命令搞定 df1<-reduce(df,inner_join

7K11
  • Day07 生信马拉松-数据整理R

    (x) # 引号单个字母/数字/符号数量 length(x) #检测向量元素数 1.2 字符串拆分 str_split(x," ") #直接拆分后会变成list子集 class(str_split..., new = Sepal.Length * Sepal.Width) #R修改必须要赋值,不赋值=没发生 test 2.4 连续步骤不同方法 2.4.1 多次赋值,产生多个中间变量 x1...data.frame第一 ggplot2对行名并不友好,通常要使样本名转化为data.frame第一,防止在后续代码运行过程中行名丢失 图片 图片 step2 把原来行名转变为第一 图片...>% #行名转化为1 mutate(group = rep(c("control","treat"),each = 3)) #对data.frame新增一分组信息 # 宽变长操作 pdat...dir() # 列出工作目录下文件 dir(pattern = ".R$") #列出工作目录下以.R结尾文件 file.create("douhua.txt") #用代码创建文件 file.exists

    22800

    数据处理第2节:转换为正确形状

    它涵盖了操纵列以便按照您希望方式获取它们工具:这可以是计算新更改为离散值或拆分/合并列。...转换:基础部分 您可以使用mutate()函数创建新。 mutate选项几乎是无穷无尽:你可以对普通向量做任何事情,可以在mutate()函数完成。...示例代码生成两个新:一显示观察对象平均睡眠时间差值,一显示观察对象睡眠最少动物差值。...所有睡眠测量柱都在几小时完成。 如果我想在几分钟完成,我可以使用mutate_at()并将包含所有'sleep'包装在vars()。 其次,我在飞行创建一个函数,每个值乘以60。...在前面的示例,新“sleep_measure”是一个字符向量。 如果您要进行总结或后续绘制,则该按字母顺序排序。

    8.1K30

    R语言专题3-条件和循环

    专题3.条件和循环1.条件语句-if(){}1.1 只有if# if()里内容一定得是逻辑值,可以是你写上T和F,也可以是运算结果# 若运算结果为T或者你写上了T,他就会执行后续语句,反之则不执行#...str_detect()进行连用,用之前别忘记加载R包library(stringr)# 1.随便生成一个向量,取名样本。...,大家可以先从看懂模仿开始## [1] "0"补充:case_when()# 用之前先加载R包dplyrlibrary(dplyr)# 先来个简单,case_when是按顺序进行判断i = 0case_when...按顺序进行判断,条件严格往前写哈# 这个用来看p值比较多case_when(x <= 0.0001 ~ "****", x <= 0.001 ~ "***", x...print(i) # 看下输出结果大家就应该知道啥意思了}## [1] 1## [1] 2## [1] 3## [1] 4# 循环画图-以内置数据iris为例par(mfrow = c(2,2)) # 画板变成两行两

    22430

    LULU:对OTU进行过滤算法,得到更准确群落多样性

    利用丹麦不同环境梯度130个位点维管植物植物ITS2数据验证了该方法准确性。 先利用不同聚类算法得到OTU,在利用LULU进行筛选(curated with LULU)。...两算法总体处理策略是相似的。 方法 OTU表可以得到一些东西: 1. OTU表OTU数量一般都多于实际物种数; 2....这个列表包含三,第一是需要进行比较OTU,第二之比较OTU,第三为相似性阈值。 3. LULU进行筛选。...对每个OTU依次进行检验,最后所有的子代OTU对应父代OTU合并。 几个可以调整参数: OTU之间相似度最小阈值:默认84%。低于阈值会被认为是错误OTU。...此外,LULU移除singletons效果进行了比较。移除singletons增加了0.03OTU真实物种数相关性,而LULU增加了0.27。 LULUdbout3进行了比较。

    2.9K31

    Seurat V5|一个函数就能解决多种去批次方法,按需尝试

    R包,数据准备 1 载入R包 下载相关R包,注意现在直接install.packages('Seurat')默认安装就是V5版本。...二 数据整合(批次处理) 1,数据拆分 示例Seurat对象包含2种不同处理数据(metastim),使用Seurat v5 整合时是拆分为不同layer 而无需拆分为多个对象。...可以看到拆分后出现4个layer (stim每个批次都有自己count和data矩阵)。 Seurat V4 需要将数据拆分为2个不同Seurat对象。...,下面就是依次可视化,然后选择最终方法继续后续分析。...,可以看到不同stim之间批次效应被整合,可以加上另两种同时展示4种方法,现在一种进行后续分析。

    7.2K12

    R语言基础5(绘图基础)

    可用于向量取子集; str_replace(x,"o","a")#xo替换为a,只替换出现第一个o; str_replace(x,"o|s","a")#xo或者s替换为a,只替换出现第一个...o; str_replace_all(x,"o","a")#xo替换为a,替换所有的o; str_remove(x," ")##x第一个空格删除; str_remove_all(x," ")...##x全部空格删除; 图片 library(stringr) str_split(x," ")##按照空格分隔 str_split(x," ",simplify=T)##列表简化为矩阵 玩转数据框...)) #从大到小 # distinct,数据框按照某一去重复 distinct(test,Species,.keep_all = T)##Species去重复,保留所有; # mutate,...---- dir() # 列出工作目录下文件 dir(pattern = ".R$") #列出工作目录下以.R结尾文件 file.create("douhua.txt") #用代码创建文件 file.exists

    33971

    R」dplyr 列式计算

    ❝在近期使用 「dplyr」 进行多选择性操作,如 mutate_at() 时,发现文档提示一系列 「dplyr」 函数变体已经过期,看来后续要退休了,使用 across() 是它们统一替代品,所以最近抽时间针对性学习和翻译下...最后我们简要介绍一下历史,说明为什么我们更喜欢 across() 而不是后一种方法(即 _if(), _at(), _all() 变体函数)以及如何将你旧代码转换为新语法实现。...这是由 base R 提供,但它并没有很好文档,我们花了一段时间才发现它是有用,而不仅仅是理论上好奇。 我们可以使用数据框让汇总函数返回多。...我们可以使用没有外部名称作为数据框解包为单独约定。 你如何转移已经存在代码?...它们已经有选择语义,所以通常以 across() 不同方式使用,我们需要使用新 rename_with() 代替。

    2.4K10

    我发现了pandas黄金搭档!

    它是对R著名数据清洗包janitor移植,就如同它名字那样,帮助我们完成数据处理清洁工作: 2 pyjanitor常用功能 对于使用conda朋友,推荐使用下列命令完成pyjanitor...: 2.1 利用also()方法穿插执行任意函数 熟悉pandas链式写法朋友应该知道这种写法对于处理数据和理清步骤有多高效,pyjanitoralso()方法允许我们在链式过程随意插入执行任意函数...()方法实现多条件分支 pyjanitorcase_when()方法可以帮助我们针对数据框实现类似SQL多条件分支运算,注意,因为是多条件分支,所以包含最后“其他”条件在内,需要至少定义3条分支规则...,左表右表指定字段之间相等这样简单条件判断,而是可高度自定义条件判断。...pyjanitormove()方法用于快捷调整某行或某数据位置,通过source参数指定需要移动数据行index或字段名,target参数用于指定移动目标位置数据行index或字段名

    50620

    (数据科学学习手札134)pyjanitor:为pandas补充更多功能

    它是对R著名数据清洗包janitor移植,就如同它名字那样,帮助我们完成数据处理清洁工作: 2 pyjanitor常用功能   对于使用conda朋友,推荐使用下列命令完成pyjanitor...: 2.1 利用also()方法穿插执行任意函数   熟悉pandas链式写法朋友应该知道这种写法对于处理数据和理清步骤有多高效,pyjanitoralso()方法允许我们在链式过程随意插入执行任意函数...()方法实现多条件分支 pyjanitorcase_when()方法可以帮助我们针对数据框实现类似SQL多条件分支运算,注意,因为是多条件分支,所以包含最后“其他”条件在内,需要至少定义3...左表右表指定字段之间相等这样简单条件判断,而是可高度自定义条件判断。...pyjanitormove()方法用于快捷调整某行或某数据位置,通过source参数指定需要移动数据行index或字段名,target参数用于指定移动目标位置数据行index或字段名

    46220

    使用 HyperTools 正确姿势! | Kaggle 实战教程

    红色代表有毒,绿色无毒 用这种方式可视化,可以清楚看出,每个簇蘑菇是否有毒都是稳定。但不同之处在于簇簇之间。另外,看起来有好几个十分明确“有毒”以及“可食用”簇。...但只需要额外几行代码,我们就可以直接从 sklearn 调用相关函数,以使用其它降维方法。。...为了对每个城市在图表权重进行标准化处理,我们可设置标准化 flag (默认值是 False)。设置 normalize='across' 。HyperTools 整合了一系列实用标准化选项。...hyp.plot(temps, normalize='across', group=years.flatten(), palette='RdBu_r') ?...我们也可以用二维图形对这两个现象做可视化: hyp.plot(temps, normalize='across', group=years.flatten(), palette='RdBu_r', ndims

    1.2K90

    使用 HyperTools 正确姿势! | Kaggle 实战教程

    红色代表有毒,绿色无毒 用这种方式可视化,可以清楚看出,每个簇蘑菇是否有毒都是稳定。但不同之处在于簇簇之间。另外,看起来有好几个十分明确“有毒”以及“可食用”簇。...但只需要额外几行代码,我们就可以直接从 sklearn 调用相关函数,以使用其它降维方法。。...为了对每个城市在图表权重进行标准化处理,我们可设置标准化 flag (默认值是 False)。设置 normalize='across' 。...hyp.plot(temps, normalize='across', group=years.flatten(), palette='RdBu_r') ?...我们也可以用二维图形对这两个现象做可视化: hyp.plot(temps, normalize='across', group=years.flatten(), palette='RdBu_r', ndims

    78940
    领券