如何创建一个列名取决于R中对象值的 Dataframe ?

dojqjjoe  于 2023-01-10  发布在  其他
关注(0)|答案(1)|浏览(154)

我想创建一个 Dataframe ,其中的列的值依赖于另一个对象的值。
下面是一个例子,我希望我的列命名为“conditional_colname”:

x = "conditional_colname"
df <- data.frame(x = c(1, 2, 3))
df

>  x
1 1
2 2
3 3

我可以尝试以下indirection syntax in tidy evaluation,但它返回错误:

data.frame({{x}} := c(1, 2, 3))
> Error in `:=`({ : could not find function ":="

我可以通过使用rename函数和indirection in tidy evaluation syntax来解决这个问题,如下所示:

df %>% rename({{x}} := x)
>   conditional_colname
1                   1
2                   2
3                   3

但这涉及到用错误的名称创建 Dataframe ,然后重命名它,是否有任何选项可以从创建数据集开始重命名?

oalqel3c

oalqel3c1#

{{..}}可以与tibbles一起使用-

library(tibble)
library(rlang)

df <- tibble({{x}} := c(1, 2, 3))
df

# A tibble: 3 × 1
#  conditional_colname
#                <dbl>
#1                   1
#2                   2
#3                   3

使用data.frame的解决方案是setNames

df <- setNames(data.frame(c(1, 2, 3)), x)

相关问题