使用magrittr设置名称,其中名称和值都是data.frame的变量?
假设我有以下数据:使用magrittr设置名称,其中名称和值都是data.frame的变量?,r,dataframe,magrittr,R,Dataframe,Magrittr,假设我有以下数据: > data.frame(value = 1:2, name = c("a", "b")) value name 1 1 a 2 2 b 目标: library(magrittr) data.frame(value = 1:2, name = c("a", "b")) %>% setNames(object = .$value, nm = .$name) 我是否可以将其作为输入提供给管道操作符并将其“发送”到setNam
> data.frame(value = 1:2, name = c("a", "b"))
value name
1 1 a
2 2 b
目标:
library(magrittr)
data.frame(value = 1:2, name = c("a", "b")) %>%
setNames(object = .$value, nm = .$name)
我是否可以将其作为输入提供给管道操作符并将其“发送”到setNames(或magrittr::set_names)
我尝试过的:
library(magrittr)
data.frame(value = 1:2, name = c("a", "b")) %>%
setNames(object = .$value, nm = .$name)
我想这是行不通的,因为管道想要移交整个data.frame并将其用作第一个参数。如果我可以跳过这个行为,而使用两个子集,我就会对此感兴趣
(因此,data.frame(value=1:2,name=c(“a”、“b”))%%>%
是固定的,不被变量替换)
所需输出:
library(magrittr)
data.frame(value = 1:2, name = c("a", "b")) %>%
setNames(object = .$value, nm = .$name)
如果没有管道操作符,它会是什么样子:
> a <- data.frame(value = 1:2, name = c("a", "b"))
> setNames(object = a$value, nm = a$name)
a b
1 2
>a setNames(object=a$value,nm=a$name)
a b
1 2
对于这种情况,我们可以简单地将其包装在{}
library(dplyr)
data.frame(value = 1:2, name = c("a", "b")) %>%
{ setNames(object = .$value, nm = .$name)}
对于
tidyverse
,还有一个deframe
,它将给出一个名为的向量
library(tibble)
data.frame(value = 1:2, name = c("a", "b")) %>%
select(2:1) %>%
deframe
#a b
#1 2
非常感谢(该死的)。我已经看到了,却忘了。我可以在11分钟内接受答案。我以后再做!