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

有没有更好的方法为tibble中的每个键(sym)添加一个新的值/字段,而不是使用mutate然后使用pivot_longer?

是的,除了使用mutate和pivot_longer之外,还有其他方法可以为tibble中的每个键添加一个新的值/字段。以下是一些可行的方法:

  1. 使用tidyr包中的gather函数:
  2. 使用tidyr包中的gather函数:
  3. 这将把tibble中的每个键(sym)添加为新的键(new_key),并将相应的值添加为新的字段(new_value)。
  4. 使用reshape2包中的melt函数:
  5. 使用reshape2包中的melt函数:
  6. 这将使用sym作为标识变量(id.vars),将tibble转换为长格式,其中每个键(sym)都会成为新的键,并将相应的值作为新的字段。
  7. 使用dplyr包中的group_by和summarize函数:
  8. 使用dplyr包中的group_by和summarize函数:
  9. 这将按照sym进行分组,并将每个键(sym)的值作为一个列表(new_value)进行汇总,从而添加一个新的字段。

无论使用哪种方法,都可以根据具体情况选择合适的方式来为tibble中的每个键添加一个新的值/字段。

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

相关·内容

独家 | 不同机器学习模型的决策边界(附代码)

标签:机器学习 作者前言 我使用Iris数据集训练了一系列机器学习模型,从数据中的极端值合成了新数据点,并测试了许多机器学习模型来绘制出决策边界,这些模型可根据这些边界在2D空间中进行预测,这对于阐明目的和了解不同机器学习模型如何进行预测会很有帮助...该数据集包含4种植物物种的不同特征,这些特征可区分33种不同物种(Setosa,Virginica和Versicolor)。但是,我的问题需要一个二元分类问题,而不是一个多分类问题。...目标 我的目标是建立一种分类算法,以区分这两个植物种类,然后计算决策边界,以便更好地了解模型如何做出此类预测。为了为每个变量组合创建决策边界图,我们需要数据中变量的不同组合。...(每个组合一个列表),并用合成数据(或每个变量组合的最小值到最大值的数据)给列表赋值。...注意:以上的代码在你的console中会运行得更好,当我用代码来编程此博文的时候图像很小。因此,我为模型和变量组合的示例提供了单独的图。

1.8K40

R tips:使用!!来增加dplyr的可操作性

会告诉group_by函数,先对group_var进行求值,获得其值为gear,然后在进行后续操作。 为什么group_var需要先使用sym函数包裹?...mean_manual获得此分组元素需要使用ensym,也就是ensym(.grp_v),因为此时的.grp_v是形参,如果要获取实参的值并转换为Symbol,需要使用ensym,而不是sym。...在mutate中完成新变量名的编程 假如想要在mutate中使用变量对新变量进行设置,其结果并不会如愿,比如,将新变量名var_name赋值为“gear_new",使用var_name进行mutate操作...,结果却发现新变量为var_name,而不是我们想要的gear_new。...,可能更倾向于将四个新变量放置到同一个数据框中,可以如下操作: ### 添加新列的函数 mutate_news <- function(.data, .vars) { data <- enexpr(

2.5K31
  • R 数据整理(七:使用tidyr和dplyr处理数据框 2.0)

    数据集如果用于统计与绘图,需要满足一定的格式要求,(Wickham, 2014) 称之为 整洁数据 (tidy data),基本要求是每行一个观测,每列一个变量,每个单元格恰好有一个数据值。...这些变量应该是真正的属性,而不是同一属性在不同年、月等时间的值分别放到单独的列。...dplyr 包的 distinct() 函数可以对数据框指定若干变 量,然后筛选出所有不同值,每组不同值仅保留一行。...2.8 mutate 可以为数据框计算新变量,返回含有新变量以及原变量的新数据框: mutate(test, new = Sepal.Length * Sepal.Width) > head(test,...也可以用来添加新列,结合我先前说过的新增列的种种方法,并且支持多个语句组成的复合语句: > d.class %>% mutate(sexc = { + x <- rep(" 男", length(sex

    10.9K30

    R绘图 | 表达矩阵画箱线图

    箱式图用于多组数据平均水平和变异程度的直观分析比较。每组数据均可呈现其最小值、最大值、平均水平,最小值、最大值形成间距都可以反映数据的变异程度。 主要函数为geom_boxplot()。...本期我们以表达矩阵为例来做箱式图。 1 原始数据 常规的表达矩阵每一行为一个基因,每一列为一个样本,如果拿到的数据不符合上述规则,首先需要对数据进行调整。...如果每一行为一个样本,每一列为一个基因则需要使用t()进行转置。...library(tidyr) library(tibble) library(dplyr) dat = t(exp) %>% # “%>%”为管道符,相当于linux中的“|” as.data.frame...() %>% # 只有数据框才能使用将行名变成一列的命令 rownames_to_column() %>% # 将行名变成一列 mutate(group = rep(c("control",

    2.6K20

    我承认tidyverse已经脱离了R语言的范畴

    最近在学习tidyverse,批量方差分析之前都是用for循环,然后用formula处理模型,再把结果保存为list的形式,现在学习了tidyverse的操作,可以用pivot_longer将所有性状进行长数据转化...NA NA 然后我们看tidyverse的解决方案: head(fm) fm1 = fm %>% pivot_longer(-c(1:5),names_to = "trait",values_to...,然后nest形成列表 第三步:使用map进行批量方差分析 第四步:使用map进行结果整理 结果: 一个字:绝 二个字:真绝 …… 昨天的文章中(统计学习心法:万物皆可回归,有时可以分类)介绍,学习心法很重要...,学习框架很重要,而学习R语言高效的方法就是在tidyverse下学习,问题来了,tidyverse怎么学?...当然看最新的电子书,纸质版的都out了:R语言学习看最新版的电子书不香嘛? ---- 大家好,我是邓飞,一个持续分享的农业数据分析师

    66120

    tidyverse数据清洗案例详解

    介绍 本中你将学习在R中数据处理简洁的方法,称为tidy data。将数据转换为这种格式需要一些前期工作,但这些工作从长远来看是值得的。...这是一个非常典型的现实示例数据集。它包含冗余列,奇数变量代码和许多缺失值。我们需要采取多个步骤来对其进行整理。 不是变量的列汇集在一起 首先将不是变量的列聚集在一起。...变量名中给出的结构(例如new_sp_m014,new_ep_m014,new_ep_f014)可能是值,而不是变量。...我们知道单元格代表案件数,因此我们将变量数存储在cases中,并用na.rm去除含有缺失值的行。这里使用pivot_longer()将数据变长,具体见后面函数详情。...字符分割 接下来就是将key中的字符进行分割,我们使用separate()对字符进行两次分割。 1.将在每个下划线处拆分代码。

    1.6K10

    玩转数据处理120题|R语言版本

    salary列合并为新的一列 难度:⭐⭐⭐ 备注:salary为int类型,操作与35题有所不同 R解法 df % mutate(test1 = paste0...行操作(默认),1-列操作 how:any-只要有空值就删除(默认),all-全部为空值才删除 inplace:False-返回新的数据集(默认),True-在原数据集上操作 57 数据可视化 题目:绘制收盘价的折线图...R解法 temp tibble(names(df)) 62 异常值处理 题目:打印所有换手率不是数字的行 难度:⭐⭐⭐ 期望结果 ?...难度:⭐⭐ 备注 从数据2中读取数据并在读取数据时将薪资大于10000的为改为高 R语言解法 library(readr) df2 % mutate...R语言解法 tibble(data = str_glue('{round(df$data * 100,2)}%')) 106 数据查找 题目:查找上一题数据中第3大值的行号 难度:⭐⭐⭐ R语言解法

    8.9K10

    tidyverse:R语言中相当于python中pandas+matplotlib的存在

    出版有《R for Data Science》(中文版《R数据科学》),这本书详细介绍了tidyverse的使用方法。...,会自动添加列名 tibble,类型只能回收长度为1的输入 tibble,会懒加载参数,并按顺序运行 tibble,是tbl_df类型 tibble是data.frame的进化版,有如下优点:生成的数据框数据每列可以保持原来的数据格式...例如:x %>% f(y) 等价于 f(x,y) Rstudio中快捷键: ctrl+shift+m 以R中自带的iris(鸢尾花数据集)为例: > head(iris,n=3) Sepal.Length...#key:将原数据框中的所有列赋给一个新变量key #value:将原数据框中的所有值赋给一个新变量value #…:可以指定哪些列聚到同一列中 #na.rm:是否删除缺失值 widedata 为字段的变量 #value:需要分散的值 #fill:对于缺失值,可将fill的值赋值给被转型后的缺失值 stocks <- data.frame( time = as.Date

    4.2K10

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

    mutate中的任何内容都可以是新列(通过赋予mutate新的列名),或者可以替换当前列(通过保持相同的列名)。 最简单的选项之一是基于其他列中的值的计算。...如果我想在几分钟内完成,我可以使用mutate_at()并将包含列的所有'sleep'包装在vars()中。 其次,我在飞行中创建一个函数,将每个值乘以60。...两个选项之间的主要区别是:funs()版本是一行代码少,但是将添加而不是替换列。 根据您的情况,两者都可能有用。...如果要添加另一个数据框的信息,可以使用dplyr中的连接函数。...对于某些分析和图表,可能有必要将它们合二为一。 gather函数需要您为新的描述性列指定名称(“key”),并为值列指定另一个名称(“value”)。 最后需要取消选择您不想收集的列。

    8.1K30

    表达矩阵转换为数据框画图

    主要介绍使用pivot_longer进行长宽数据转换,这两个函数都是来自于tidyr包 问题背景 现在有一个表达矩阵,要画箱线图 但是,上面表格不满足向ggplot2画箱线图的函数传递参数的需求,要变换成数据框把所有数字变成一列传递给...(group = rep(c("control","treat"),each = 3)) # 按test的分组新加一列分组,用于画图上不同颜色 pdat = dat%>% pivot_longer...(cols = starts_with("gene"), # gene开头的列 names_to = "gene", # 列名归为gene列...values_to = "count") 生信技能树 注意:以下情况都可以解决 列名是字符型数据 列名中含有数值型数据,可以names_prefix/names_transform提取,可以用readr包中的...parse_number()函数直接解析 列名中含有多个变量可以用正则表达式拆分成多列 一行有多个观测 列名有重复 详见使用pivot_longer和pivot_wider进行长宽数据转换-CSDN博客

    11310

    「R」dplyr 列式计算

    然后我们将展示一些其他动词的使用。...最后我们将简要介绍一下历史,说明为什么我们更喜欢 across() 而不是后一种方法(即 _if(), _at(), _all() 变体函数)以及如何将你的旧代码转换为新的语法实现。...这使 「dplyr」 更容易使用(因为需要记住的函数更少),也使我们更容易实现新的动词(因为我们只需要实现一个函数,而不是四个)。...令人失望的是,我们没有早点发现 across(),而是经历了几个错误的尝试(首先没有意识到这是一个常见的问题,然后是使用_each()函数,最后是使用_if()/_at()/_all()函数)。...我们可以使用没有外部名称作为将数据框列解包为单独列的约定。 你如何转移已经存在的代码?

    2.4K10

    免疫浸润结果可视化

    免疫浸润结果可视化 在之前的推文中我们介绍了2行代码实现9种免疫浸润方法,今天给大家介绍下常见的免疫浸润结果的可视化。 就以大家最常见的cibersort为例进行介绍。...首先大家要对每种免疫浸润方法的结果有一个大体的认知,比如cibersort的结果是各种免疫细胞在样本中的比例,所以一个样本中所有的免疫细胞比例加起来总和是1! 但是ssGSEA就不是这样了。...比如我这里就根据tumor/normal把样本分组,然后再组间进行非参数检验,并添加P值。 这些都是R语言基础操作,本号的可视化合集中介绍了太多这些基本绘图知识了。...P值,所以我知道大家想自己画的更加花里胡哨一点,在很久之前我就介绍过了这个方法了:R语言ggplot2画相关性热图 画图前先准备下数据,把P值数据和相关系数数据整合到一起,所以借助linkET包也是有缺点的...然后你可以循环出图并保存到本地,不过我并没有使用上面这种花里胡哨的图,你可以自己修改: library(purrr) plot_list % split

    1.2K30

    R优雅绘制小样本间相关性网络图

    ❞ ❝给予长期支持我们的忠实读者们一个特别待遇,我们提供了一个持续更新的数据可视化会员文档库。「这份文档包含数百个数据可视化文档,是学习和提升技能的理想选择」。...>4 observations 报错信息表明rcorr函数在尝试计算Spearman相关性时遇到了问题,原因是数据中的某些变量(列)的观测值数量不足以进行相关性分析。...具体来说rcorr 函数要求每个变量至少有5个观测值来计算相关性。...解决方案 ❝由于在进行实验设计时,通常多为设置3重复,若我们想分析每一组内不同样本之间的相关性就会频繁遇到这种问题,使用内置的R包则无法解决问题,因为需要我们进行自定义分析函数来进行相关性分析. ❞ 加载...<- E(df_igraph)$weight edge_attributes tibble(weight = df.weight) %>% mutate( color = case_when

    48210

    玩转数据处理120题|Pandas&R

    难度:⭐⭐⭐ Python解法 # pandas里有一个插值方法,就是计算缺失值上下两数的均值 df['popularity'] = df['popularity'].fillna(df['popularity...(df$education,df$createTime)) 36 数据处理 题目:将education列与salary列合并为新的一列 难度:⭐⭐⭐ 备注:salary为int类型,操作与35题有所不同...na.omit(df) 备注 axis:0-行操作(默认),1-列操作 how:any-只要有空值就删除(默认),all-全部为空值才删除 inplace:False-返回新的数据集(默认),True-...(df)) 62 异常值处理 题目:打印所有换手率不是数字的行 难度:⭐⭐⭐ 期望结果 ?...)}%')) 106 数据查找 题目:查找上一题数据中第3大值的行号 难度:⭐⭐⭐ Python解法 df['data'].argsort()[len(df)-3] R语言解法 df %>% mutate

    6.1K41

    R语言之 dplyr 包

    4.使用 mutate( ) 添加新变量 函数 mutate( ) 用于在数据框中创建新的变量。...# 当然如果想要用新变量替换原来的变量,只需把新变量命名为原来的变量名: mutate(birthwt, lwt.kg = lwt*0.4536) 5.使用 summarise( ) 计算统计量 函数...# 第一步把数据框 birthwt 里面的变量 race 转换成因子并给各个水平添加标签,把新的数据框命名为 birthwt1 birthwt1 mutate(birthwt,...summarise(birthwt.group, mean(bwt)) 这种方法的最大缺点是需要为每个中间结果建立一个变量。在很多情况下,比如在上面的示例中,这些中间变量其实是没有什么实际意义的。...group_by(race) %>% summarise(mean(bwt)) 上述代码的重点在于动词函数,而不是函数中的参数。

    45020

    MLQuant:基于XGBoost的金融时序交易策略(附代码)

    在这篇文章中我们将一系列资产的时间序列数据分解成一个简单的分类问题,看看机器学习模型能否更好地预测下一个周期方向。目标和策略是每天投资一项资产。...()函数应用于它,而不会出现资产类的任何重叠或混合,我们这样做是为了为每个周期创建时间序列特征。...接下来,应用functions字符串从tsfeatures包中调用函数,将这些函数应用于样本analysis数据(每个数据包含100个观测值),这样,我们获得了一个折叠可以将其绑定在一起的观测值。...之后,我们使用重命名chng变量并使用~str_c("X", seq_along(.))将时间序列特征变量重命名为更具动态性的变量,因此我们只需向functions字符串添加函数,而不必担心为了让模型起作用而单独重命名变量...也就是说,我们仅对市场上涨的预期概率最高的资产进行投资。 因此,我们创建了一个名为top_assets的新数据框架,该框架基本上每天为我们提供所有资产的最高预测概率。

    3K41

    从零开始的异世界生信学习 R语言部分 06 R应用专题

    可以用来进行分组,通过str_detect函数识别数据中的关键词,然后进行分组 samples = c("tumor1","tumor2","tumor3","normal1","normal2","...pivot_longer(cols = starts_with("gene"), ##选择那几列的列名合成在一起组成新的一列 names_to = "gene", #...#新的列的名字 values_to = "count") ## 把原来列中的数值一一对应形成一个新的数值列'count' 图片 library(ggplot2) p =...,y = 32:35,z = 30:27);test #返回值是列表,对列表中的每个元素(向量)求均值(试试方差var,分位数quantile) lapply(test,mean) lapply(test...(第一个写的数据框),右表中多余的数据舍去,没有的数据显示缺失值 right_join(test1,test2,by="name") ##右连接,以右侧的表的行为准构成新的数据框(第二个写的数据框),左表中多余的数据舍去

    2.5K30
    领券