gpt4 book ai didi

r - 如何使用 magrittr::inset()?

转载 作者:行者123 更新时间:2023-12-02 09:44:31 27 4
gpt4 key购买 nike

据我了解magrittr::inset()应该能够将向量分配给数据帧中的新列(与 extract() 相反)。但我不明白语法应该如何工作。

假设我有,作为一个玩具示例:

df = data.frame( id = 1:26, letter = letters)
newvalue = rnorm(26)

我想将 newvalue 作为新列添加到 magrittr 链中的 df 中。我假设它是这样的:

df %>%
inset('new_column_name', newvalue)

但这不起作用,大概是因为我不太明白 [<- 的语法是什么。 (其中 inset() 是别名)应该看起来像。

在 magrittr 链之外,我可以这样做:

df['new_column_name']  <- newvalue

但我的问题是如何在一个链中做到这一点,我已经完成了各种不同的操作。

最佳答案

以你的例子与我的快速评论为例:

library(magrittr)

df <- data.frame( id = 1:26, letter = letters)

newvalue <- rnorm(26)

您需要做的就是:

df %>% inset("newvalue", value=newvalue)

## id letter newvalue
## 1 1 a -0.44805172
## 2 2 b -0.36284495
## 3 3 c 1.56175094
## 4 4 d 1.48775535
## 5 5 e -0.29086149
## 6 6 f 0.46456966
## 7 7 g 0.01130394
## 8 8 h 0.57100808
## 9 9 i -0.87445603
## 10 10 j 0.81932107
...

但是,您可以完全跳过 magrittrinset(),因为它有效:

`[<-`(df, "newvalue", value=newvalue)

## id letter newvalue
## 1 1 a -0.44805172
## 2 2 b -0.36284495
## 3 3 c 1.56175094
## 4 4 d 1.48775535
## 5 5 e -0.29086149
## 6 6 f 0.46456966
## 7 7 g 0.01130394
## 8 8 h 0.57100808
## 9 9 i -0.87445603
...

也是如此:

df %>% `[<-`("newvalue", value=newvalue)

关于r - 如何使用 magrittr::inset()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32124044/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com