如何使用 magrittr::inset()?
How do I use magrittr::inset()?
我知道 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
...
但是,您可以完全跳过 magrittr
的 inset()
,因为它有效:
`[<-`(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)
我知道 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
...
但是,您可以完全跳过 magrittr
的 inset()
,因为它有效:
`[<-`(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)