当前位置: 首页 > 知识库问答 >
问题:

在mutate()中使用get()根据向量[重复]中的值添加列

柯新翰
2023-03-14

我想为向量的每个元素添加一列。列值将基于某些条件。我在filter()中使用了get(),但在mutate()中不起作用。

下面是一个例子:

df <- read.table(text =
"A   B    C
1     2     3 
4     5     6
7     8     9",
header = TRUE, stringsAsFactors = FALSE)
ID_function = function(var_name){

  df = df%>%
    mutate(get(var_name)=A + B)
}

ID_function("TEST")
Error: unexpected '=' in:
"  df = df%>%
    mutate(get(var_name)="

还有别的方法我可以用吗?

共有1个答案

温浩大
2023-03-14

我们可以使用赋值运算符(:=)代替<-,并计算(!!)字符串以在TidyVerse中创建列

library(tidyverse)
ID_function = function(var_name){

  df %>%
       mutate(!!var_name := A + B)
     }

ID_function("TEST")
#    A B C TEST
#1 1 2 3    3
#2 4 5 6    9
#3 7 8 9   15
 类似资料:
  • 我试图从swift(issue_id)中向JSON的主体添加一个值,我搜索了所有的地方,但看起来没有人回答我的问题,也没有人问我的问题。我还试图将它添加到params中,但显然失败了。 我知道如何添加参数和标头,但我不知道如何向主体添加值,下面是代码

  • 基本上,我想知道如果变量为false,但来自对象内部,是否可以避免将属性添加到对象中。假设我有一个物体: 现在我想重写同一个对象,但我只想在新变量(布尔值)为真的情况下添加第二个属性。问题是我如何做到这一点,例如使用这样的三元运算符: 我想要避免的是: 因为我不想在add==false的情况下使用条索引。此外,赋值必须在对象的内部(这是一个关于它是否可行的问题),因为这样的东西不是我想要的: 解决

  • 我有一个记录。 我的

  • 问题内容: 我有交易数据框。每行代表两个项目的交易(可想而知,就像两张事件票之类的交易一样)。我想根据售出的数量重复每一行。 这是示例代码: 这将产生一个看起来像这样的数据框 因此,在上述情况下,每一行将转换为两个重复的行。如果“数量”列为3,则该行将转换为三个重复的行。 问题答案: 首先,我使用整数而不是文本重新创建了您的数据。我还更改了数量,以便可以更轻松地理解问题。 我通过使用嵌套列表理解结

  • 对不起,我真的不知道该怎么做,只能问了。我想在字符串列表中添加值。但我的代码不起作用

  • 下面的代码检查ArrayList中是否存在id 数组列表结果很好,但映射值仅返回true。请帮助我如何根据条件添加k、v以映射,以便映射结果如下所示[{Access=false},{Access=true},{Access=false},{Access=false},{Access=true}]。