我是 dplyr
的新手,无法弄清楚如何控制变量通过链接 (%>%
) 命令。简单的示例:str_sub
函数采用三个参数 - 第一个参数通过 %>%
传递,但如何获取最后两个参数? :
library(stringr)
library(dplyr)
df <- data.frame(V1 = c("ABBEDHH", "DEFGH", "EFGF", "EEFD"),
V2=c(4, 2, 1, 1), V3=c(5, 2, 2, 1), stringsAsFactors=FALSE)
在基础 R 中我可以这样做:
with(df, str_sub(V1, V2, V3))
并得到:
## [1] "ED" "E" "EF" "E"
如何链接这个? - 我尝试过:
df %>% str_sub(V1, V2, V3) # Here V3 is unused arg since V1 is treated as 2nd arg
df %>% select(V1) %>% str_sub(V2, V3) # Here V2 and V3 are not recognized
最佳答案
您可以执行以下操作:
library(dplyr)
library(stringr)
library(lazyeval)
df %>% mutate(new = str_sub(V1, V2, V3))
# V1 V2 V3 new
#1 ABBEDHH 4 5 ED
#2 DEFGH 2 2 E
#3 EFGF 1 2 EF
#4 EEFD 1 1 E
请注意,dplyr
是为处理 data.frame
而设计的,因此输入和输出应该是 data.frame,而不是原子向量。
关于r - dplyr:使用链接传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26715455/