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

提取的变量名dplyr::mutate

艾子石
2023-03-14

我想从数据帧中提取一个变量名,并用dplyr::mutate创建一个新变量。我必须写什么才能接受通过“md$meta[1]”提供的变量名?我想这是直截了当的,但我还没能在网上找到答案。如有任何帮助,不胜感激!

iris <- head(iris)
meta <- c("a", "b", "c")
data <- c(1:3)
md <- data.frame(meta, data)
rm(meta, data)
iris <- iris %>%
  mutate("a" = md$data[1])
iris <- iris %>%
  mutate(paste0(md$meta[1]) = md$data[1])

共有1个答案

金谭三
2023-03-14

这可以通过赋值(:=)和计算(!!)赋值的lhs来实现

iris %>% 
    mutate(!! paste0(md$meta[1]) := md$data[1])
#  Sepal.Length Sepal.Width Petal.Length Petal.Width Species a
#1          5.1         3.5          1.4         0.2  setosa 1
#2          4.9         3.0          1.4         0.2  setosa 1
#3          4.7         3.2          1.3         0.2  setosa 1
#4          4.6         3.1          1.5         0.2  setosa 1
#5          5.0         3.6          1.4         0.2  setosa 1
#6          5.4         3.9          1.7         0.4  setosa 1
 类似资料:
  • 我尝试在mutate_()函数(dplyr)中用paste()创建一个变量。 我试图用这个答案修改代码(dplyr-mutate:使用动态变量名),但它不起作用... 注意:nameVarPeriod1是函数的参数。

  • 有没有一种更简洁的方法从带有数据库后端的tbl中获得dplyr tbl的一列作为向量(即数据帧/表不能直接子集)? 那太容易了,所以 但似乎有点笨拙。

  • 我想使用在数据帧中创建多个新列。列名及其内容应动态生成。 来自IRIS的示例数据: 我创建了一个函数来从变量中更改新列:

  • 我想在使用dplyr时动态创建变量名;不过,我也可以使用非DPLYR解决方案。 例如:

  • 如何从变量中提取路径和文件名? 我想在不使用任何函数或任何GOTO的情况下做到这一点。可能吗?

  • 我想在一个数据帧中创建几个新的空变量,并在向量中指定变量名。如果我只指定了一个变量名,这是可行的,但如果指定了几个,就不行了。我尝试了一些以前的解决方案,但它们似乎在这种情况下不起作用,例如: < li >不硬编码变量名的dplyr > < li >传递带有要变异的名称的向量以创建多个新列 < li>dplyr - mutate:使用动态变量名 期望的输出将是: 我想知道我如何能使这个工作?